- •4.2.1. Повторные и опущенные объявления
- •Типы данных
- •3.1.3. Литералы вещественных чисел
- •3.1.6. Специальные числовые значения
- •3.2.2. Управляющие последовательности в строковых литералах
- •3.3. Логические значения
- •3.4.1. Функциональные литералы
- •3.6. Массивы
- •7.6.1. Добавление новых элементов в массив
- •7.7.9. Методы toString() и toLocaleString()
- •7.7.10. Дополнительные методы массивов
- •11.1.2. Классы символов
- •11.1.3. Повторение
- •11.1.4. Альтернативы, группировка и ссылки
- •11.1.6. Флаги
- •1 Здесь функция alert() используется просто для отображения информации: она
- •13.2.2. Сценарии во внешних файлах
- •13.3. Обработчики событий в html
- •13.5.5. Объект Window как контекст исполнения
- •15.2. Свойства объекта Document
- •1 Модель dom может также использоваться для представления xmLдокументов,
- •15.4.2. Узлы
- •15.4.2.1. Типы узлов
- •1 Стандарт dom определяет интерфейсы, а не классы. Те, кто не знаком с термином
- •15.4.2.2. Атрибуты
- •15.5. Обход документа
- •1 Во многих сложных dhtmLэффектах используются также приемы обработки
- •16.1. Обзор css
- •1 Эрик Мейер «css – каскадные таблицы стилей. Подробное руководство», 3е из
- •16.1.1. Применение правил стиля к элементам документа
- •16.2.1. Ключ к dhtml: абсолютное позиционирование
- •16.2.3. Определение положения и размеров элемента
- •16.3.2. Работа со свойствами стилей
- •300 Пикселов:
- •17.1.1.1. Аппаратнозависимые и аппаратнонезависимые события
- •17.1.2. Обработчики событий как атрибуты
- •1 Подробное описание htmLформ, включая пример проверки правильности за
- •17.2.6.3. Интерфейс MouseEvent
- •17.5. События клавиатуры
- •17.5.1. Типы событий клавиатуры
- •17.5. События клавиатуры 441
11.1.2. Классы символов
Отдельные символы литералов могут объединяться в классы символов путем по
мещения их в квадратные скобки. Класс символов соответствует любому симво
лу, содержащемуся в этом классе. Следовательно, регулярное выражение /[abc]/
соответствует одному из символов a, b или c. Могут также определяться классы
Символ Соответствие
Алфавитноцифровые
символы
Соответствуют самим себе
\0 Символ NUL (\u0000)
\t Табуляция (\u0009)
\n Перевод строки (\u000A)
\v Вертикальная табуляция (\u000B)
\f Перевод страницы (\u000C)
\r Возврат каретки (\u000D)
\xnn Символ из набора Latin, задаваемый шестнадцатеричным
числом nn; например, \x0A – это то же самое, что \n
\uxxxx Unicodeсимвол, заданный шестнадцатеричным числом
xxxx; например, \u0009 – это то же самое, что \t
\cX Управляющий символ ^X; например, \cJ эквивалентно сим
волу перевода строки \n
1 Из числа знаков препинания. – Примеч. науч. ред.11.1. Определение регулярных выражений 217
символов с отрицанием, соответствующие любому символу, кроме тех, которые
указаны в скобках. Класс символов с отрицанием задается символом ^ в качестве
первого символа, следующего за левой скобкой. Регулярное выражение /[^abc]/
соответствует любому символу, отличному от a, b или c. В классах символов диа
пазон символов может задаваться при помощи дефиса. Поиск всех символов ла
тинского алфавита в нижнем регистре осуществляется посредством выражения
/[az]/, а любую букву или цифру из набора символов Latin можно найти при по
мощи выражения /[azAZ09]/.
Некоторые классы символов используются особенно часто, поэтому синтаксис ре
гулярных выражений в JavaScript включает специальные символы и управляю
щие (escape) последовательности для их обозначения. Так, \s соответствует симво
лам пробела, табуляции и любым пробельным (whitespaces) символамразделите
лям из набора Unicode, а \S – любым символам, не являющимся символамиразде
лителями из набора Unicode. В табл. 11.2 приводится перечень этих спецсимволов
и синтаксиса классов символов. (Обратите внимание: некоторые из управляю
щих последовательностей классов символов соответствуют только ASCIIсимво
лам и не расширены для работы с Unicodeсимволами. Можно явно определить
собственные классы Unicodeсимволов, например, выражение /[\u0400\04FF]/
соответствует любому символу кириллицы.)
Таблица 11.2. Классы символов регулярных выражений
Обратите внимание: управляющие последовательности специальных классов
символов могут находиться в квадратных скобках. \s соответствует любому сим
волуразделителю, а \d соответствует любой цифре, следовательно, /[\s\d]/ соот
ветствует любому символуразделителю или цифре. Обратите внимание на осо
бый случай. Как мы увидим позже, последовательность \b имеет особый смысл.
Однако когда она используется в классе символов, то обозначает символ «за
бой». Поэтому, для того чтобы обозначить символ «забой» в регулярном выра
жении буквально, используйте класс символов с одним элементом: /[\b]/.
Символ Соответствие
[...] Любой из символов, указанных в скобках
[^...] Любой из символов, не указанных в скобках
. Любой символ, кроме перевода строки или другого разделителя Unicode
строки
\w Любой текстовый ASCIIсимвол. Эквивалентно [azAZ09_]
\W Любой символ, не являющийся текстовым ASCIIсимволом. Эквивалент
но [^azAZ09_]
\s Любой символразделитель из набора Unicode
\S Любой символ, не являющийся символомразделителем из набора Uni
code. Обратите внимание: \w и \S – это не одно и то же
\d Любые ASCIIцифры. Эквивалентно [09]
\D Любой символ, отличный от ASCIIцифр. Эквивалентно [^09]
[\b] Литерал символа «забой» (особый случай)218 Глава 11. Шаблоны и регулярные выражения