07. november 2006 - 19:24
Der er
11 kommentarer og 1 løsning
Fjerne alle ikke-alfanumeriske tegn fra streng med RegExp i ASP
Hej Eksperter! Jeg kan ikke få RegExp til at virke, har prøvet følgende kode: Set regEx = New RegExp regEx.Pattern = \"\\W\" regEx.IgnoreCase = True regEx.Global = True strStrip = regEx.Replace(strStrip) men får så bare følgende fejl: Microsoft VBScript compilation error '800a03ea' Syntax error regextest.asp, line 19 regEx.Pattern = \"\\W\" ----------------^ Virker det ikke med VBscript eller laver jeg bare noget galt?
Annonceindlæg fra DE-CIX
07. november 2006 - 21:37
#1
Prøv og fjern den første og sidste bachslash i din pattern, mener kun der er i javascript disse bruges og ikke i VB. regEx.Pattern = "\\W" /Goose
07. november 2006 - 22:03
#2
ah ja :) det hjalp lidt.. men så er replace også skrevet til JS.. hvordan sætter man det ind så det passer til VB? Lige nu får jeg fejlen: Microsoft VBScript runtime error '800a01c2' Wrong number of arguments or invalid property assignment: 'Replace' /telia/regextest.asp, line 22
07. november 2006 - 22:22
#3
Tror mere det er fordi "replace" måske er et beskyttet ord, prøv og brug noget andet - f.eks: strStrip = regEx.Test(strStrip) /Goose
07. november 2006 - 22:24
#4
interessant.. så returnerer den bare: "False" ;)
07. november 2006 - 22:31
#5
Hmm.. kan godt være jeg er helt på vildspor... Det jeg egentlig bare prøver, er at få den til at tage strengen "strStrip" og så fjerne alle ikke-alfanummeriske tegn fra den, inklusive mellemrum
07. november 2006 - 22:35
#6
Nu kender jeg ikke lige \\W men hvordan bruger du din RegExp, kalder du den via en funktion eller hvad? /Goose
07. november 2006 - 22:39
#7
Aner det ikke ;) Er første gang jeg roder med RegExp. har kun det der står i toppen som jeg har forsøgt mig med.. altså noget i stil med: Set regEx = New RegExp regEx.Pattern = "\\W" regEx.IgnoreCase = True regEx.Global = True strStrip = regEx.Test(strStrip) response.write(strStrip) Kender du en metode til at strippe en streng for alt andet end alfanummeriske tegn? så er den yderst velkommen ;)
07. november 2006 - 23:04
#8
Jeg er heller ikke skrap i regexp, men jeg fandt følgende i mine gemmer: <% Function ReplaceTest(tekst,patrn, replStr) Dim regEx, str1 Set regEx = New RegExp regEx.Pattern = patrn regEx.global = true regEx.IgnoreCase = True ReplaceTest = regEx.Replace(tekst, replStr) End Function saetning = "Hej Eksperter!Jeg kan ikke få RegExp til at virke, har prøvet følgende kode" stripcontent = ReplaceTest(saetning,"([\d\s])","") Response.Write(stripcontent) %> Jeg daffer i seng nu. /Goose
08. november 2006 - 11:54
#9
YES :D det virker! Ved at ændre ([\d\s]) til \W fungerer det efter hensigten :) Tak for hjælpen! Smider du ikke lige et svar?
08. november 2006 - 11:56
#10
Altså... så der står: stripcontent = ReplaceTest(saetning,"/W","")
08. november 2006 - 12:02
#11
Ok, men så var det da heldigt jeg lige kiggede i min skrammelkasse :o) /Goose
08. november 2006 - 12:10
#12
Jeps ;) Der finder man ofte go'e sager...
Kurser inden for grundlæggende programmering