--- title: Классы символов slug: Web/JavaScript/Guide/Regular_Expressions/Character_Classes tags: - Guide - JavaScript - Reference - RegExp - Regular Expression - character classes translation_of: Web/JavaScript/Guide/Regular_Expressions/Character_Classes ---
{{JSSidebar("JavaScript Guide")}}
Классы символов позволяют различать виды символов, к примеру, как различия между буквами и цифрами.
Символ | Значение |
---|---|
. |
Точка имеет одно из следующих смыслов:
Замечание. В 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']
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 символов для определения слова (благодаря этому мы можем работать с текстами написанным, например на русском или арабском языке 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)); [ 'Приключения', 'Алисы', 'в', 'Стране', 'чудес' ]
Note for MDN editors: please do not try to add funny examples with emoji as those characters are not handled by the platform (Kuma).
Спецификация |
---|
{{SpecName('ESDraft', '#sec-characterclass', 'RegExp: Character classes')}} |
Для информации о совместимости с браузерами, посмотрите основную таблицу совместимости Regular Expressions.