Page 276 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 276
И м енов н н ы е наборы символов
а
Некоторые наборы символов настолько распространены (и настолько полезны),
что для них есть удобные сокращения.
Именованный Эквивалент Примечание
набор символов
\d ( 0 - 9 ]
\D ( л Q - 9 ]
n
\s ( \ t \ v\ \ r ] Включает символы табуляции, пробела и вертикальной
табуляции
\S [ л \ t \ v\n\r ]
\w [ a - z A-Z ] Обратите внимание, что черточки и точки сюда не вхо
дят, что делает этот набор неподходящим для распоз
навания классов CSS и имен доменов
\W
Чаще всех из этих сокращений, вероятно, используется набор пробельных сим -
волов ( \ s). Например, пробелы часто используется для выравнивания кода, поэтому
в процессе его анализа программным способом, вам, вероятно, понадобиться учиты
вать любое возможное количество пробельных символов.
const stuff =
' h ight : 9 \ n ' +
' m edium: 5\n' +
' l ow : 2 \ n ' ;
const levels s t uff . m atch ( / : \ s * [ 0 - 9 ) /g) ;
(Символ * после \ s означает "любое количество пробелов'; о чем мы узнаем вскоре.)
Не упускайте ценность инвертированных символьных классов ( \ D, \S и \W); они
представляют отличный способ избавления от нежелательного хлама. Например,
прекрасная идея нормализовать номера телефонов перед их сохранением в базе
данных. При вводе номеров телефона для их читаемости люди могут пользоваться
разными разделителями: черточками, точками, круглыми скобками и пробелами. Но
для поиска, использования в качестве ключей и идентификации было бы хорошо,
если бы номера телефонов состояли только из десяти цифр (или больше, если мы
говорим о международных номерах телефона). При использовании набора \ D ( т.е.
все что не цифры) это сделать очень просто.
const messyPhone = ' ( 5 0 5 ) 5 5 5 - 1 5 1 5 ' ;
(
const neatPhone = mes s yPhone . replace / \ D/ g, ' ' ) ;
Именованные наборы символов 279

