Page 277 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 277
Точно так же я часто использую набор \ S для проверки того, что в обязательных
полях ввода есть хоть какие-то данные (в них должен быть по крайней мере один
символ, и это не должен быть пробел!).
const field ' something ' ;
const valid = / \ S / . test ( field) ;
Повторе н и е
Повторение (repetition) метасимволов позволяет задать количество повторов не
ких соответствий. Рассмотрим предыдущий пример, в котором мы распознавали
одиночные цифры. Что если вместо этого мы должны распознавать числа (которые
могут состоять из нескольких расположенных рядом цифр)? Мы могли бы использо
вать то, что уже знаем, и сделать так.
const match = beer99 . m atch ( / [ 0 - 9 ] [ 0 - 9 ] [ 0 - 9 ] 1 [ 0 - 9 ] [ 0 - 9 ] 1 [ 0 - 9 ] / ) ;
Обратите внимание, что здесь снова необходимо распознавать более специфи
ческие строки (трехзначные числа) прежде, чем менее специфические (двузначные
числа). Это регулярное выражение будет работать для одно-, двух- и трехзначных
чисел, но, можно распознавать и четырехзначные числа, просто добавив новый ша
блон в начало нашего чередования. К счастью, есть лучший путь.
const match = beer99 . m atc ( / [ 0 - 9 ] + / ) ;
h
Обратите внимание на знак + после символьной группы: он указывает, что преды
дущий элемент должен соответствовать один или несколько раз. Фраза "Предыдущий
элемент" зачастую сбивает новичков с толку. Метасимволы повторения - это моди
фикаторы (modifier), которые модифицируют то, что расположено перед ними. Они
ничего не делают самостоятельно и не могут этого делать по определению! Есть пять
модификаторов повторения.
Моди- Описание Пример
ф икатор
{ n } Точно n р аз / d { 5 } / соответствует только пятизначным числам (на
пример, почтовым индексам)
{ n , } По крайней мере n раз / \ d { 5 , } / соответствует только числам с пятью и более
цифрами
{ n , rn } По крайней мере n, но / \d { 2 , 5 } / соответствует только числам, состоящим
не более rn раз по крайней мере из двух, но не больше пяти цифр
? Ноль или один раз. / a - z J \d? / i соответствует буквам англ и йского алфави
[
Эквивалент { , 1 } та, за которыми может следовать (а может и нет!) одна
О
цифра
280 Глава 1 7 . Регулярные выражения

