Регулярные выражения в javascript. Часть 2
На прошлом уроке мы начали изучать регулярные выражения в javascript. В этом уроке мы рассмотрим функции объекта RegExp (функции, которые мы разбирали на прошлом уроке, относились к объекту String). Также в этом уроке рассмотрим синтаксис регулярных выражений.
Рассматриваемые функции:
1. test — возвращает true или false соответственно исходя из результата.
2. exec — некое дополнение к функциям match и search. В уроке подробно рассматривается случай, когда к регулярному выражению добавляется флаг g. В этом случае надо знать нюансы поиска при наличии указанного флага.
1. test — возвращает true или false соответственно исходя из результата.
2. exec — некое дополнение к функциям match и search. В уроке подробно рассматривается случай, когда к регулярному выражению добавляется флаг g. В этом случае надо знать нюансы поиска при наличии указанного флага.
Кроме того рассмотрен синтаксис регулярных выражений (не полностью). Назначение синтаксических конструкций смотрите в комментариях в коже ниже.
Код урока
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
var str = "Продолжаем изучать род регулярные выражения";
var pattern = /род/g;
console.log(pattern.lastIndex); // 0
console.log(pattern.test(str));
console.log(pattern.lastIndex); // 4
console.log(pattern.exec(str));
console.log(pattern.lastIndex); // 22
console.log(pattern.exec(str));
console.log(pattern.lastIndex); // 0
// Синтаксис
/*
** \d - любая цифра (digit)
** \s - пробел, табуляция (space)
** \w - слово, буква(лат.) + "_" (word)
** \b - граница (HTML5, HTML 5).
*/
var patternDigit = /\d/g; // поиск цифры
var patternStr = /HTML\d/ // поиск строки HTML с цифрой после нее (HTML5)
/*
** Инверторы
** \D - не цифра
** \S - не пробел
** \W - не слово (сюда подходят русские буквы)
*/
var patternPoint = /./ //поиск любого символа (кроме перевода строки \n)
/*
** Специальные символы - . () / \ и др.
*/
/*
** [] - поиск в наборе одного из символов
** [-] - поиск в диапазоне - [0-9]
** - ^ - кроме
** + - один символ и более
**/
var nameStr = "@mail test@mail.ru mail.ru abzalov90@gmail.com";
console.log(nameStr.match(/[a-zA-Z_0-9]+@[a-z]+\.\w+/g));
</script>
</body>
</html>
0 Comments