Классы символов
Классы символов позволяют различать виды символов, к примеру, как различия между буквами и цифрами.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Типы
Символ | Значение |
---|---|
. |
Точка имеет одно из следеющих смыслов:
Замечание. В 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));
[ 'Приключения', 'Алисы', 'в', 'Стране', 'чудес' ]
Спецификации
Совместимость с браузерами
Для информации о совместимости с браузерами, посмотрите основную таблицу совместимости Regular Expressions.