«Единственный способ творить великие дела – это любить то, что ты делаешь»
JavaScript



Игра «Морской Бой» на JavaScript: Простая Игра и Игра для Двоих



Метод match так же, как и метод search работает с регулярными выражениями. Он также ищет совпадение в строке, но возвращает не позицию, с которой начинается совпадение, а само совпадение.



Метод match - Возвращаем совпадение

Чтобы наглядно увидеть, как работает метод match, рассмотрим пример из предыдущей заметки, где при помощи регулярного выражения \d{6} и метода search искали в строке индекс из шести цифр.

Только теперь будем работать с методом match.

Фрагмент кода

<script type="text/javascript">

var index = "Индекс г. Воронеж 394000";
var regular = /\d{6}/; /* Регулярные выражения: \d и {6} - последовательность из шести цифр */
var result = index.match(regular); /* Ищем последовательность из шести цифр в строке */
document.write(result);

</script>

Результат

Итак, в этом примере при помощи метода match мы нашли в строке совпадение (почтовый индекс) и вывели его на экран.

Метод match - Экранирование скобок в регулярных выражениях

Теперь рассмотрим более сложный пример того, как работает метод match в Javascript.

Сделаем так, чтобы метод match выводил все совпадения, найденные в строке.

И узнаем о том, что в регулярных выражениях обязательно экранировать скобки.

Допустим, у нас есть переменная, содержащая список сотрудников какой-либо фирмы, с указанием их имен, телефонов и городов, где они работают. var people = ("Иванов И.И. тел. 8(495)210-21-21 г. Москва; Петров П.П. тел. 8(495)320-20-20 г. Москва; Сидоров С.С. тел. 8(473)222-22-33"); Нужно выбрать тех, кто работает в Москве, и вывести на экран номера их телефонов.

Фрагмент кода

<script type="text/javascript">

var people = "Иванов И.И. тел. 8(495)210-21-21 г. Москва; Петров П.П. тел. 8(495)320-20-20 г. Москва; Сидоров С.С. тел. 8(473)222-22-33";
var regular = /8\(495\)\d{3}-\d{2}-\d{2}/; /* Создаем регулярное выражение */
var result = people.match(regular); /* Ищем совпадения в строке */

document.write(result);

</script>

Результат

Разберем этот пример.

  • Согласно исходной переменной 2 человека работают в Москве и имеют следующие номера телефонов: 8(495)210-21-21 и 8(495)320-20-20

  • У этих номеров общие цифры 8(495) и далее разная последовательность из 7-ми произвольных цифр.
    Согласно этому составляем регулярное выражение
    8\(495\)\d{3}-\d{2}-\d{2}, где...

  • 8\(495\) - говорит о том, что мы ищем 8(495). Обратный слэш необходим для экранирования круглых скобок, так как в регулярных выражениях они являются специальными символами и просто так их использовать нельзя.

  • \d{3} - это регулярное выражение должно быть Вам уже знакомо из предыдущей заметки и оно обозначает последовательность из 3-х цифр.

  • \d{2} - последовательность из 2-х цифр.

Но в результате мы увидим только один - 1-ый номер телефона 8(495)210-21-21, то есть метод match вернул только одно совпадение. А в строке их два - два номера телефона, которые соответствуют шаблону.

Метод match - Возвращаем совпадения - g - Глобальный поиск

Продолжим работать с предыдущим примером.

Теперь нужно сделать так, чтобы метод match смог вернуть все совпадения в строке.

Для этого после описания регулярного выражения нужно указать модификатор шаблонов g, который указывает на глобальный поиск. То есть в нашем случае «он говорит» о том, что нужно искать совпадения по все строке и в результат занести все, которые будут найдены.

Как раз это мы и увидим в примере ниже...

Фрагмент кода

<script type="text/javascript">

var people = "Иванов И.И. тел. 8(495)210-21-21 г. Москва; Петров П.П. тел. 8(495)320-20-20 г. Москва; Сидоров С.С. тел. 8(473)222-22-33";
var regular = /8\(495\)\d{3}-\d{2}-\d{2}/g; /* Создаем регулярное выражение и добавляем модификатор шаблонов - g*/
var result = people.match(regular); /* Ищем совпадения в строке */

document.write(result);

</script>

Результат

В итоге при помощи метода match и модификатора шаблонов g мы вернули все совпадения, найденные в строке, которые перечислены через запятую. То есть по сути метод match возвращает массив из совпадений.

Если метод match не находит совпадений, то он возвращает null.

Модификаторы шаблонов можно увидеть все в той же шпаргалке по регулярным выражениям.



Читайте также...



Отзывы и комментарии:

Комментариев нет...

Оставить отзыв:

Ваше Имя:

Текст комментария:

Ответьте на вопрос:

Сколько дней в Високосном году?


Объект String
Метод match - Возвращает массив из совпадений - Глобальный поиск g
3056
Свойство length - Число символов в строке
2885
Практическая задача - Свойство length
1284
Регистр строки - toUpperCase и toLowerCase
23070
Практическая задача - Методы toUpperCase и toLowerCase
1428
Поиск совпадений в строке - Методы indexOf и lastIndexOf
2821
Практическая задача - Методы indexOf и lastIndexOf
1400
Метод slice - Копирование из строки
2675
Практическая задача - Метод slice
1463
Методы charAt и charCodeAt - Возвращаем символ и КОД символа
9527
Практическая задача - Методы charAt и charCodeAt
2787
Метод search - Регулярные выражения
2127
Регулярные выражения - Начало и Конец строки
1958
Практическая задача - Регулярные выражения
1166
Поиск сайта в строке
1438
Практическая задача с кредитной картой
1751
Метод replace - Замена совпадений
4317
Практическая задача - Метод replace
1979
Метод trim в - Удаление пробелов в начале и конце строки
5930
Метод substring - Извлекает часть строки
1030
Метод split в JavaScript - Разделитель строки
1898

Тематические публикации
Популярные заметки
Последние заметки