Globalne wyszukiwanie, wielkość znaków, wieloliniowe wejście
Zaawansowane wyszukiwanie za pomocą flag
Wyrażenia regularne posiadają cztery opcjonalne flagi, które pozwalają na globalne i niezależne od wielkości znaków wyszukiwanie. Aby wskazać wyszukiwanie globalne, użyj flagi g
. Aby wskazać wyszukiwanie nieczułe na wielkość znaków, użyj flagi i
. Aby wskazać wyszukiwanie wieloliniowe, użyj flagi m
. Aby przeprowadzić "lepkie" wyszukiwanie, które pasuje do początku obecnej pozycji w łańcuchu docelowym, użyj flagi y
. Flagi te mogą być użyte oddzielnie lub razem w dowolnej kolejności i są dołączane jako część wyrażenia regularnego.
Uwaga dotycząca Firefoksa 3: Obsługa flagi y
została dodana w Firefoksie 3. Użycie flagi y
skutkuje niepowodzeniem, jeśli wynik nie następuje po aktualnej pozycji w łańcuchu docelowym.
Aby dołączyć flagę do wyrażenia regularnego, użyj składni:
re = /pattern/flags re = new RegExp("pattern", ["flags"])
Zauważ że flagi są integralną częścią wyrażenia regularnego. Nie mogą być one dodane lub usunięte później.
Na przykład, re = /\w+\s/g
tworzy wyrażenie regularne, które szuka jednego lub więcej znaków, po których następuje spacja, szukając tej kombinacji w całym łańcuchu znaków.
<script type="text/javascript"> re = /\w+\s/g; str = "fee fi fo fum"; myArray = str.match(re); document.write(myArray); </script>
To wyświetli ["fee ", "fi ", "fo "]. W tym przykładzie możesz zamienić linię:
re = /\w+\s/g;
z:
re = new RegExp("\\w+\\s", "g");
otrzymując ten sam rezultat.
Flaga m
jest używana do określenia, że wieloliniowy łańcuch wejściowy powinien być traktowany jako wiele linii. Jeśli użyta jest flaga m
, ^ i $ odpowiadają za początek lub koniec z każdej linii w wejściowym łańcuchu znaków zamiast początku i końca całego łańcucha.