![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 24.06.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Zastanawiam się, dlaczego w wyrażeniach regularnych w JS, mimo stosowania flagi /m, która pozwala na korzystanie z tekstu zapisanego w wielu linijkach i tak musiałem "oczyścić" tekst ze znaków nowej linii i znaków spacji. html: skopiowane źródło html strony Regexp: Kod var re = /<tag>.*<\/tag>/m; Regexp zwracał to czego szukałem Kod var result = html.match(re); tylko i wyłącznie, gdy wcześniej oczyściłem tekst ze znaków \n i \s: Kod html = html.replace(/\n/g, ""); //Pozbywamy się znaków końca linii. html = html.replace(/\s/g, "_coś_"); //Znaki białe zamieniamy na inne znaki. html = html.replace(/_coś_/g, " "); //Ostatecznie znaki białe zamieniamy na spacje. Czy ktoś wie dlaczego tak się dzieje ? ---------------------------------- Sam znalazłem rozwiązanie. Zamiast flagi \m, która w tym przypadku się nie przyda w wyrażeniu regularnym stosujemy notację: Kod [\s\S\]* czyli regexp powinien wyglądać tak: Kod var re = /<tag>[\s\S]*<\/tag>/m;
Ten post edytował rtech.projekty.php 28.06.2013, 07:56:48 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 03:12 |