Marcin Mierzwa

Marcin Mierzwa PHP Developer, It
Production

Temat: Wyrażenia regularne - problem z multilinią

Witam.

Mam problem z Java Script.
Pobieram ajaxem kod html.
Robię wyszukiwanie tekstu w pobranym kodzie html za pomocą wyrażeń regularnych.
Ponieważ tekst jest wielolinijkowy muszę użyć flagi /m.
regexp = /<customTag>.*<\/customTag>/m;
result = text.match(regexp);
Problem polega na tym, że dopóki tekstu i tak nie oczyszczę ze znaków końca linii i ze spacji funkcją replace(), to wyrażenie regularne nic nie zwróci, mimo użycia flagi /m.
Dlaczego tak się dzieje ?Ten post został edytowany przez Autora dnia 27.06.13 o godzinie 13:47

konto usunięte

Temat: Wyrażenia regularne - problem z multilinią

Nie wiem czy do konca rozumiem, ale skoro Twoj teskt jest wielolinijkowy to nie potrzebujesz chyba flagi "m", tylko "s", ktorej JS nie implementuje.

Moze sprobuj: /<customTag>[\s\S]*<\/customTag>/
Marcin Mierzwa

Marcin Mierzwa PHP Developer, It
Production

Temat: Wyrażenia regularne - problem z multilinią

Łukasz N.:
Nie wiem czy do konca rozumiem, ale skoro Twoj teskt jest wielolinijkowy to nie potrzebujesz chyba flagi "m", tylko "s", ktorej JS nie implementuje.

Moze sprobuj: /<customTag>[\s\S]*<\/customTag>/

Zadziałało. Dzięki !

Czyli zapis
[\s\S]
należy rozumieć jako coś co jest znakiem białym lub nie jest znakiem białym.
Zastanawia mnie tylko pod co w javascript podlega znak nowej linii lub końca linii - pod \s czy pod \S.

konto usunięte

Temat: Wyrażenia regularne - problem z multilinią

Marcin M.:
Zastanawia mnie tylko pod co w javascript podlega znak nowej linii lub końca linii - pod \s czy pod \S.

Pod \s AFAIR, ale reki sobie nie dam uciac ;)
Piotr Koszuliński

Piotr Koszuliński JavaScript ninja

Temat: Wyrażenia regularne - problem z multilinią


/\s/.test('\n')
true
/\S/.test('\n')
false
/./.test('\n')
false

konto usunięte

Temat: Wyrażenia regularne - problem z multilinią

Piotr K.:

/\s/.test('\n')
true
/\S/.test('\n')
false
/./.test('\n')
false

Nie popisuj się;)

Następna dyskusja:

problem z thickbox pod ie6




Wyślij zaproszenie do