JavaScript. Подробное руководство, 6-е издание (Флэнаган) - страница 39

3.2.4. Сопоставление с шаблонами

В языке JavaScript определен конструктор >RegExp(), предназначенный для создания объектов, представляющих текстовые шаблоны. Эти шаблоны описываются с помощью регулярных выражений, синтаксис которых был заимствован языком JavaScript из языка Perl. И строки, и объекты >RegExp имеют методы, позволяющие выполнять операции сопоставления с шаблоном и поиска с заменой при помощи регулярных выражений.

RegExp не относится к числу фундаментальных типов данных языка JavaScript. Подобно объектам >Date, они просто являются специализированной разновидностью объектов с удобным прикладным интерфейсом. Грамматика регулярных выражений и прикладной интерфейс отличаются повышенной сложностью. Они подробно описываются в главе 10. Однако поскольку объекты >RegExp обладают широкими возможностями и часто используются на практике, мы коротко познакомимся с ними в этом разделе.

Несмотря на то что объекты >RegExp не относятся к фундаментальным типам данных языка, они имеют синтаксис литералов и могут вставляться непосредственно в текст программы на языке JavaScript. Текст, заключенный в пару символов слэша, интерпретируется как литерал регулярного выражения. За вторым символом слэша из этой пары может следовать один или более символов, которые модифицируют поведение шаблона. Например:


>/"HTML/            // Соответствует символам Н Т М L в начале строки

>/[ 1-9][0-9]*/     // Соответствует цифре, кроме нуля, за которой следует любое число цифр

>/\bjavascript\b/i  // Соответствует подстроке "javascript”

>                   // как отдельному слову, учитывает регистр символов


Объекты RegExp обладают множеством полезных методов. Кроме того, строки также обладают методами, которые принимают объекты RegExp в виде аргументов. Например:


>var text = "testing: 1, 2, 3”; // Образец текста

>var pattern = /\d+/g       // Соответствует всем вхождениям одной или более цифр

>pattern.test(text)         // => true: имеется совпадение

>text.search(pattern)       // => 9: позиция первого совпадения

>text.match(pattern)        // => ["1", "2", "3"]: массив всех совпадений

>text.replace(pattern,'#');> // => "testing: tf, tf. #"

>text.split(/\D+/);         // >=> "1","2","3"]: разбить по нецифровым символам


3.3. Логические значения

Логическое значение говорит об истинности или ложности чего-то. Логический тип данных имеет только два допустимых логических значения. Эти два значения представлены литералами >true и >false.

Логические значения обычно представляют собой результат операций сравнения, выполняемых в JavaScript-программах. Например: