Игра на «Морской Бой» на JavaScript: «Простая Игра» и «Игра для Двоих»
Yutex - Платный хостинг PHP.
Advego.ru - система покупки и продажи контента для сайтов, форумов и блогов

Технические фишки инфобизнеса 2014

Статьи для сайтов!!!
Регулярные выражения - Начало и Конец строки Метод match - Возвращает массив из совпадений Поиск сайта в строке

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

Свойства и методы строковых объектов - Объект String

Урок №8 Метод match - Возвращает массив из совпадений

Количество просмотров: 777

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

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

Метод 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 - Экранирование скобок в регулярных выражениях

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

Сделаем так, чтобы метод 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 - Глобальный поиск

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

Теперь нужно сделать так, чтобы метод 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.

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

Главная Изучаем JavaScript Метод match - Возвращает массив из совпадений Поиск сайта в строке

Ваши комментарии к уроку:

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

Добавить комментарий:

Ваше Имя:*
Комментарий:*
Ответьте на вопрос: *
Сколько дней в Високосном году?
* - поля обязательные для заполнения.
JavaScript
Частота просмотра уроков
Дизайн сайтов
ПОИСК ПО САЙТУ:

Моё имя Антон. Связаться со мною Вы можете по e-mail: averagev@mail.ru