Для операций поиска/замены в JavaScript предусмотрено использование регулярных выражений- комбинаций специальных символов (подстановочных знаков), с помощью которых реализуется поиск по заданному шаблону. Полное описание их синтаксиса приведено в разд. П2.6, здесь лее дается только в объеме, необходимом для создания данного скрипта. Кроме того, интересующиеся могут посетить специализированный сайт http:// www.regiilar-exprcssions.iiifo/reference.Iitiiil, полностью посвященный вопросам поиска/замены, причем не только в JavaScript.

Любой цифре соответствует шаблон [0-9], текстовому символу- [а-я], если нужно включить и прописные буквы, то [а-яА-я] и т. д. Вообще же в диапазон поиска можно включать любой символ, нужно лишь помнить о особом предназначении знаков +,?,*, I, Л, \ и точки.

Знак вопроса говорит о том, что символ может присутствовать, но не обязательно (т. е. результатом поиска по шаблону шее? в "длинношеее" будет "ше" и "шее"). Символ "плюс" (+) сообщает о том, что в тексте должно быть хотя бы одно совпадение предыдущего символа (ше+ даст "ше", "шее" и "шеее"). Действие символа * похоже на +, но имеет более широкий охват; (ше* найдет кроме "ше" и "шее" также "ш" и "шеее"). Символ | является аналогией операции "ИЛИ" : [ко|ит] эквивалентно поиску "кот" и "кит". Чтобы искать "ко" и "ит" одновременно, потребуется (как один из вариантов) использовать скобки: (ко) | (ит). "Крышка" (л) имеет разный смысл в зависимости от места, где она стоит. Если в начале шаблона, то искомый фрагмент ищется только в начале строки, наличие "крышки" внутри диапазона говорит о том, что диапазон присутствовать не должен (т. е. по Га-я] найдется все, кроме знаков алфавита, а [Л0-Э] найдет все, что не является цифрой).

Знак \ зарезервирован для специальных случаев. Одним из них является поиск специальных знаков \t, \г, \п (символ табуляции, символ абзаца и новая строка). Перед ними ставят еще один знак \, т. е. строка поиска будет \\t и \\г соответственно. Точка (.) используется для поиска любого знака ("длин.+ " найдет не только все слово "длинношеее", но и все оставшиеся слова до конца строки).

При поиске удобно пользоваться группировкой (заключать в скобки части поискового выражения), что дает дополнительную гибкость при операциях замены.

Замена имеет свою специфику. Для последующего использования найденных фрагментов текста предназначены комбинации от \$1 до \$э, где цифра указывает порядковый номер выражения в скобках в строке поиска. Таким образом, поиску комбинации "цифра-тире-цифра" будет соответствовать выражение ([0-9])-([0-9]), или короче- (\d)-(\d) (специальный символ d- сокращение от digital, цифра), а замена в ней дефиса на тире будет выглядеть как \$1-\$2. Все заменяемые выражения окружаются кавычками и соединяются в цепочку через +.

Специальные символы (неразрывное тире и др.) не отображаются на экране, однако и они имеют свой код. Он может быть найден несколькими способами. Самый надежный - в начале любого абзаца вставить необходимый символ, выделить его и использовать вспомогательный скрипт:


⇐ вернуться назад | | далее ⇒