Avatar billede montago Praktikant
25. oktober 2007 - 16:13 Der er 3 kommentarer og
1 løsning

Finde Strings i JScript som evt. indeholder escaped pling

i Javascript (hurra) kan man skrive strings på 2 måder:

str = "halløj"
og
str = 'halløj'

hvis man i strengen har pling eller dobbelpling skal de escapes:

str = "halløj \"anders\" "
og
str = 'halløj \'anders\' '

og endvidere har man ingen escape når de er blandet på kryds

str = "halløj 'anders' "
og
str = 'halløj "anders" '


Jeg arbejder lidt på at lave EN regex som kan finde sådanne strings ud af en kontekst (læs JScript sourcekode) - dvs. strings optræder i kald, initialiseringer osv.

str="ongo"
kald("pjask")
parameter(5,"pisk")



jeg er indtilvidere nået til: /(\s|\(|=)(\"|')(([^\\.]|\\\2)+?)(\2)/

men den fanger ikke alt... skal bruge lidt hjælp til at komme videre

det skal siges at Regex'en skal køres i Javascript ! (JScript Flavor)

jeg har oprettet et testsite til Regex : http://www.mdk-photo.com/regex/ <-- som kan loade sider eksternt
(NB: regex i paranteser bliver highlighted)

og tester pt. med følgende JS kode/URL : http://www.mdk-photo.com/Trial/codepress/languages/javascript.js
Avatar billede montago Praktikant
25. oktober 2007 - 16:18 #1
min tanke er

1. find et sted der, som regel er præfix til string-start: (\s|\(|=)
2. find ' eller \" (gemmes i $2)
3. find .+? sammen med escaped $2 -- \\\2
4. slut = \2

det er 3. jeg har lidt problemer med, idet .+? stopper fint ved første \2 match... men er ikke agresiv nok til at hoppe over \\\2
Avatar billede montago Praktikant
25. oktober 2007 - 16:19 #2
4. kan endvidere have forskellige suffix, men er svær at definere nogen, uden at ødelægge den "milde" .+?
Avatar billede montago Praktikant
31. oktober 2007 - 23:02 #3
/(&lt;|&gt;|<br>|[\[{+=,\s\(:?\/\-\*\^;])(\"|')(((\\\2)|.??)*)(\2|<br>|<\/P>|<\/em>)/gi

im KING !
Avatar billede montago Praktikant
31. oktober 2007 - 23:19 #4
alternativ:

("|')(((\\\1)|.??)*(\1|\n))

og endnu een

([^])("|')(((\\\1)|.??)*(\1|\n))


kommer lidt an på sproget, og konteksten
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

IT-JOB

Politiets Efterretningstjeneste

IT-frontdesk medarbejder til PET's IT Servicedesk

Netcompany A/S

Network Engineer

AL Sydbank A/S (tidligere Arbejdernes Landsbank)

Afdelingschef til GDPR & Tech Regulation