Екранування класів символів: \d, \D, \w, \W, \s, \S
Екранування класу символів – це екранувальна послідовність, що представляє набір символів.
Синтаксис
\d, \D
\s, \S
\w, \W
Примітка:
,
не є частиною синтаксису.
Опис
На відміну від екранувань символів, екранування класів символів представляють попередньо визначені набори символів, подібні до класів символів. Підтримуються наступні класи символів:
\d
Дає збіг з будь-яким символом-цифрою. Рівносильний
[0-9]
.\w
Дає збіг з будь-яким символом слова, причому серед символів слова – літери (A–Z, a–z), цифри (0–9) та підкреслення (_). Якщо задано як позначку врахування Unicode, так і позначку
i
, то також дає збіг з іншими символами Unicode, які канонічно перетворюються на один з вищезазначених символів під час згортання регістру.\s
Дає збіг з будь-яким пробільним символом або символом завершення рядка.
Форми з великими літерами, \D
, \W
та \S
, створюють відповідні доповняльні класи щодо \d
, \w
та \s
відповідно. Вони дають збіг з будь-яким символом, який не належить до набору символів, з яким дає збіг форма з малою літерою.
Екранування класів символів Unicode починаються з \p
і \P
, але підтримуються лише в режимі з урахуванням Unicode. В режимі без урахування Unicode ці екранування є екрануваннями ідентичності символів p
і P
.
Екранування класів символів можуть вживатися в класах символів. Однак вони не можуть використовуватися як межі діапазонів символів, – це дозволяється лише як нерекомендований запис для забезпечення вебсумісності, і на це не можна покладатися.
Приклади
Розбивання за пробілами
Наступний приклад розбиває рядок на масив слів, підтримуючи всі різновиди роздільників-пробілів:
function splitWords(str) {
return str.split(/\s+/);
}
splitWords(`Look at the stars
Look how they\tshine for you`);
// ['Look', 'at', 'the', 'stars', 'Look', 'how', 'they', 'shine', 'for', 'you']