Avatar billede zicko Nybegynder
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?
Avatar billede goose Nybegynder
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
Avatar billede zicko Nybegynder
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
Avatar billede goose Nybegynder
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
Avatar billede zicko Nybegynder
07. november 2006 - 22:24 #4
interessant.. så returnerer den bare: "False" ;)
Avatar billede zicko Nybegynder
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
Avatar billede goose Nybegynder
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
Avatar billede zicko Nybegynder
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 ;)
Avatar billede goose Nybegynder
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
Avatar billede zicko Nybegynder
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?
Avatar billede zicko Nybegynder
08. november 2006 - 11:56 #10
Altså... så der står:

stripcontent = ReplaceTest(saetning,"/W","")
Avatar billede goose Nybegynder
08. november 2006 - 12:02 #11
Ok, men så var det da heldigt jeg lige kiggede i min skrammelkasse :o)

/Goose
Avatar billede zicko Nybegynder
08. november 2006 - 12:10 #12
Jeps ;) Der finder man ofte go'e sager...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester