Регулярные выражения JavaScript
Привет. Регулярные выражение в JS имеют два синтаксиса.
Первый
let regexp = new RegExp('Само рег. выражение','флаги')
Второй
let regexp = /Само рег. выражение/флаги
Часто используемые команды
g – множественный поиск.
Примеры
Метод match — возвращает массив – объект с подробной информацией.
let str = "javaScript ля ля ля Java"; console.log(str.match(/java/ig));
Замена в строках
console.log('+7(000)000-00-00', replace(/-/g,':'));
Найти в строке город
Есть строка — г. Казань, ул. Фатыха Амирхана, д. 15.
/г.(.+),/iU
/ — начало регулярки.
г. — ищем символ г с точкой.
(.+) — любой один символ т.е. пробел.
, — дальше ищем запятую.
/ — конец регулярки.
i — регистронезависимость.
U — Жадность.
А еще можно вот так вот.
("/^(.*)(г\..+),(.+)$/iuU", '$2', $str)
$str — строка поиска.
$2 — второе условие.
/ — начало регулярки.
^ — начало строки.
(.*) — первое условие, любой символ 0 и более раз.
(г\..+) — символ г, точка, любой символ один и более раз.
, — запятая.
(.+) — любой символ один и более раз.
$ — конец строки.
/ — конец регулярки.
iuU — регистронезависимость, кириллица и жадность.
Еще интересный вариант на языке PHP.
$str = 'г. Казань, ул. Фатыха Амирхана, д. 15'; preg_match_all('~^г.\s+(?P<city>[^,]+),\s+ул.\s+(?P<street>[^,]+),\s+д.\s+(?P<house>[^,]+)$~iu', $str, $mathes, PREG_SET_ORDER); $info = $mathes[0]; echo $info['city'] . PHP_EOL; echo $info['street'] . PHP_EOL; echo $info['house'] . PHP_EOL;
Поиск слова на английском с дополнительными символами
Необходимо найти город, но в строчке может встречаться – или/и — или/и ().
/[a-z—-]+/gmi
Проверить пароль
Условие: чтобы пропускала только, больше либо ровно 8 символов, цифры чтобы были, Заглавная чтобы была буква, только латиница, допустимые знаки .!_ (должен быть один из .!_ ).
$re = '/^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[!_.])[A-Za-z0-9!_.]{8,}$/m'; $str = ' pasWwor!asda123'; preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0); // Print the entire match result var_dump($matches); //or return preg_match( '/^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[!_.])[A-Za-z0-9!_.]{8,}$/m', $value ) > 0;Предыдущая