Регулярные выражения –- мощное средство поиска и замены в строке. В JavaScript регулярные выражения встроены в методы поиска (search), выявления совпадений (match) и замены в строке (replace).
Регулярное выражение или, как говорят, «регэксп», состоит из шаблона и дополнительных флагов.
Простейший поиск с использованием регэкспов выглядит так:
regexp = /лю/; str = "Я люблю HTML 5!"; alert( str.search(regexp) ); // 2
Разберём его по строкам.
- Объявляется регулярное выражение
regexp:/лю/. Слэши'/'играют ту же роль, что и кавычки в строке. - В строке
strбудем искать. - Встроенный метод 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-методы для работы с ними.
Комментарии
- Приветствуются комментарии, содержащие дополнения и вопросы по статье, и ответы на них.
- Если ваш комментарий касается задачи -- откройте её в отдельном окне и напишите там.
- Комментарии без смысла, с рекламой или не о статье вообще - удаляются.