как использовать регулярные выражения в javascript для начинающих
Ответы
Регулярные выражения — это мощный инструмент для работы с текстом, который позволяет находить, заменять и проверять строки на соответствие определённым шаблонам. В JavaScript они представлены объектом RegExp
Основные понятия
Создание регулярных выражений: Регулярные выражения можно создавать двумя способами:
- Литерал:
javascript const regex = /шаблон/;
- Конструктор
RegExp
:javascript const regex = new RegExp('шаблон');
- Литерал:
Флаги регулярного выражения: Флаги изменяют поведение регулярных выражений. Наиболее распространенные флаги:
i
— игнорировать регистр.g
— глобальный поиск (найти все совпадения, а не только первое).m
— мультистрочный режим.
Пример:
const regex = /abc/gi;
Основы синтаксиса
Метасимволы:
.
— любой символ (кроме новой строки).\d
— любая цифра (аналогично [0-9]).\D
— любой нецифровой символ.\w
— любой алфавитно-цифровой символ (аналогично [a-zA-Z0-9_]).\W
— любой неалфавитно-цифровой символ.\s
— любой пробельный символ (пробел, табуляция, новая строка).\S
— любой непробельный символ.
Квантификаторы:
*
— ноль или более раз.+
— один или более раз.?
— ноль или один раз.{n}
— ровноn
раз.{n,}
—n
или более раз.{n,m}
— отn
доm
раз.
Группировка и альтернативы:
(...)
— группировка.|
— логическое ""или"".
Пример:
const regex = /(cat|dog)/;
Основные методы для работы с регулярными выражениями
- test():
Метод
test
проверяет, соответствует ли строка регулярному выражению, и возвращаетtrue
илиfalse
.
Пример:
const regex = /hello/i;
console.log(regex.test('Hello')); // true
- exec():
Метод
exec
выполняет поиск совпадений с регулярным выражением и возвращает массив с результатами илиnull
, если совпадений нет.
Пример:
const regex = /foo/;
const result = regex.exec('foo bar');
console.log(result); // ['foo', index: 0, input: 'foo bar', groups: undefined]
- match():
Метод
String.prototype.match()
ищет совпадения в строке по регулярному выражению.
Пример:
const str = 'The rain in SPAIN stays mainly in the plain';
const regex = /ain/g;
const matches = str.match(regex);
console.log(matches); // ['ain', 'ain', 'ain']
- replace():
Метод
String.prototype.replace()
заменяет совпадения регулярного выражения на новую строку.
Пример:
const str = 'I like cats and dogs.';
const newStr = str.replace(/cats/, 'fish');
console.log(newStr); // 'I like fish and dogs.'
- split():
Метод
String.prototype.split()
разбивает строку на массив подстрок по заданному шаблону.
Пример:
const str = 'apple,banana,cherry';
const fruits = str.split(/,/);
console.log(fruits); // ['apple', 'banana', 'cherry']
Примеры работы
Поиск электронной почты: Регулярное выражение для проверки формата электронной почты:
const emailRegex = /^[^@\s]+@[^@\s]+\.[^@\s]+$/; console.log(emailRegex.test('example@mail.com')); // true
Валидация номера телефона: Пример регулярного выражения для простого формата телефона:
const phoneRegex = /^\+?\d{1,3}[- ]?\d{3}[- ]?\d{3}[- ]?\d{4}$/; console.log(phoneRegex.test('+1-234-567-8900')); // true
1
0