Мастер-классы по Javascript Екатеринбург Ростов-на-Дону Москва Узнать больше...
Содержание (скрыть) Содержание (показать)

Введение

Регулярные выражения –- мощное средство поиска и замены в строке. В JavaScript регулярные выражения встроены в методы поиска (search), выявления совпадений (match) и замены в строке (replace).

Регулярное выражение или, как говорят, «регэксп», состоит из шаблона и дополнительных флагов.

Простейший поиск с использованием регэкспов выглядит так:

regexp = /лю/; 

str = "Я люблю HTML 5!";

alert( str.search(regexp) ); // 2

Разберём его по строкам.

  1. Объявляется регулярное выражение regexp: /лю/. Слэши '/' играют ту же роль, что и кавычки в строке.
  2. В строке str будем искать.
  3. Встроенный метод str.search возвращает позицию регулярного выражения /лю/ в строке Я люблю HTML 5!

Цветовые обозначения

Здесь и далее используется следующая цветовая схема:

  • регэксп (регулярное выражение) - красный
  • строка - синий
  • результат - голубой

Выше мы рассмотрели простейшее регулярное выражение, которое идентично обычной строке.

В реальной жизни регулярные выражения могут быть сложнее. К примеру, регулярное выражение ищет email’ы:

*!*
regexp = /[a-z0-9!$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)\b/
*/!*

str = "Найдем-ка email@gmail.com в этом тексте";

alert( str.match(regexp) );   // email@gmail.com

Здесь был использован метод str.match, который выдает уже не позицию, а результат поиска.

На протяжении этого цикла статей мы рассмотрим как строятся и работают регулярные выражения, после чего вы без проблем разберетесь с примером выше.

В JavaScript, регулярные выражения можно тестировать в консоли браузера, обращаясь к строке непосредственно через метод str.match:

alert( "ляля".match(/ля/) ); // ля

Чтобы сделать примеры проще, на всех страницах учебника объявлена дополнительная функция showMatch, которая выводит совпадения:

showMatch( "Я люблю HTML5!", /лю/ )  // "лю"

function showMatch(str, re) {
  var res = [], matches;
  while(true) {
    matches = re.exec(str);
    if (matches === null) break;
    res.push(matches[0]);
    if (!reg.global) break;
  }
  alert(res);
}

Следующие разделы посвящены синтаксису регулярных выражений, а затем мы рассмотрим дополнительные JavaScript-методы для работы с ними.


Комментарии

  1. Приветствуются комментарии, содержащие дополнения и вопросы по статье, и ответы на них.
  2. Если ваш комментарий касается задачи -- откройте её в отдельном окне и напишите там.
  3. Комментарии без смысла, с рекламой или не о статье вообще - удаляются.
Наверх

Содержание

Реклама

Нашли опечатку?

Нашли опечатку на сайте? Что-то кажется странным?
Выделите соответствующий текст и нажмите Ctrl+Enter!

Последние Комментарии

Помоги другим!

Помоги другим узнать о хорошей статье!