Классы символов
Классы символов позволяют различать виды символов, к примеру, как различия между буквами и цифрами.
Интерактивный пример
Типы
Символ | Значение |
---|---|
. |
Точка имеет одно из следующих смыслов:
Замечание.
В ES2018 добавили |
\d |
Совпадёт с любой цифрой (арабский числа). Эквивалентно
|
\D |
Совпадёт с любым символом, который не является цифрой (арабский
числа). Эквивалентно |
\w |
Совпадёт с любой буквенно-числовым символом из базового латинского
алфавита включая нижнее подчёркивание. Эквивалентно
|
\W |
Совпадёт с любой буквенно-числовым, которое не является символом
базового латинского алфавита, так же исключая нижнее подчёркивание.
Эквивалентно |
\s |
Совпадёт с любым пробельным символом, включая пробел, символ
табуляции, символ подачи страницы, символ подачи строки и другие
Unicode пробелы. Эквивалентно
|
\S |
Совпадёт с любым символом, не являющимся пробельным. Эквивалентно
|
\t |
Совпадёт с символом горизонтальной табуляции. |
\r |
Совпадёт с символом возврата каретки. |
\n |
Совпадёт с символом подачи строки. |
\v |
Совпадёт с символом вертикальной табуляции |
\f |
Совпадёт с символом подачи страницы (формы). |
[\b] |
Совпадёт с символом возврат назад (англ. backspace). Если вы ищите
символ границы слова (\b ), смотри
Границы.
|
\0 |
Совпадёт с символом NUL character. Не используйте другую цифру. |
\cX
|
Совпадёт с контрольным символом using
каретную нотацию, где "X" буква A–Z (соответствует кодам |
\xhh
|
Совпадёт с символом, код которого hh (две
шестнадцатеричных цифры).
|
\uhhhh
|
Совпадёт с код-блоком UTF-16 со значением
hhhh (четыре шестнадцатеричных цифры).
|
\u{hhhh} or \u{hhhhh}
|
(Только когда установлен флаг u .) Совпадёт с Unicode
символом со значением U+hhhh или
U+hhhhh (шестнадцатеричные цифры).
|
\ |
Определяет что последующий символ должен быть интерпретирован по особому или должен быть "экранирован. Это работает в двух вариантах:
Чтобы найти литеральное совпадение с этим символов ( |
Примеры
Поиск серии цифр
var randomData = "015 354 8787 687351 3512 8735";
var regexpFourDigits = /\b\d{4}\b/g;
// \b определяет границу поиска (например, не начинает поиск с середины слова)
// \d{4} определяет цифру, четыре раза
// определяет другую границу поиска (например, не начинает поиск с середины слова)
// Вывод всех чисел имеющих только 4 цифры
console.table(randomData.match(regexpFourDigits));
// ['8787', '3512', '8735']
Поиск слов (латинский алфавит), начинающих с A
var aliceExcerpt =
"I’m sure I’m not Ada,’ she said, ‘for her hair goes in such long ringlets, and mine doesn’t go in ringlets at all.";
var regexpWordStartingWithA = /\b[aA]\w+/g;
// \b определяет границу поиска (например, не начинает поиск с середины слова)
// [aA] определяет букву a или A
// \b определяет границу поиска (например, не начинает поиск с середины слова)
console.table(aliceExcerpt.match(regexpWordStartingWithA));
// ['Ada', 'and', 'at', 'all']
Поиски слов (из Unicode символов)
Вместо латинского алфавита, мы может использовать диапазон Unicode символов для определения слова (благодаря этому мы можем работать с текстами написанным, например на русском или арабском языке or Arabic). Unicode содержит большинство символов используемых на планете, мы так же можем объединять их диапазоны и классы символов.
var nonEnglishText = "Приключения Алисы в Стране чудес";
var regexpBMPWord = /([\u0000-\u0019\u0021-\uFFFF])+/gu;
// BMP goes through U+0000 to U+FFFF but space is U+0020
console.table(nonEnglishText.match(regexpBMPWord));
["Приключения", "Алисы", "в", "Стране", "чудес"];