Добавляем...


Общие сведения о регулярных выражениях в JavaScript
Регулярные выражения появились в JavaScript 1.2 и JScript 3.0 вместе с объектом RegExp, поскольку соответствующие возможности реализуются посредством методов RegExp. Однако и многие методы объекта String допускают использование регулярных выражений в качестве аргументов, поэтому регулярные выражения часто встречаются в обоих указанных контекстах.
  Обычно регулярные выражения создаются с помощью синтаксиса литералов, но символы, формирующие шаблон, ограничиваются знаками косой черты (/ и /). Например, чтобы создать регулярное выражение, которому будет соответствовать строка, содержащая "http", можно использовать следующую запись:

var pattern = /http/;

Этот шаблон читается так: за " h " следует " t", затем " t", а затем " р ". Этому шаблону будет соответствовать любая строка, содержащая "http". Непосредственно за второй косой чертой шаблона можно указать флаги, модифицирующие интерпретацию шаблона. Например, указать, что шаблон должен применяться без учета регистра, — для этого используется флаг i:

var patternlgnoringCase = /http/i;

Здесь создается шаблон, которому будут соответствовать строки, содержащие как "http", так и "HTTP" или "HttP". Флаги, наиболее часто используемые с регулярными выражениями, показаны в табл. , а их применение будет иллюстрироваться в примерах данной главы. Пока что не беспокойтесь ни о чем, кроме i.
Символ Значение
i Нечувствительность к регистру
g Глобальное соответствие: находятся все случаи соответствия в строке, а не только первый
m Многострочное соответствие

Регулярные выражения могут также объявляться с помощью конструктора RegExp(). Первый аргумент конструктора — это строка, содержащая требуемый шаблон. Второй аргумент необязателен, он содержит специальные флаги для этого выражения. Два предложенных выше примера шаблонов можно было бы объявить так:

var pattern = new RegExp("http");
var patternlgnoringCase = new RegExp("http", "i");

Синтаксис конструктора часто используется тогда, когда шаблон, с которым сравниваются строки, остается не определенным до времени выполнения. Можно позволить ввести регулярное выражение пользователю, чтобы затем передать строку, содержащую полученное выражение, в конструктор RegExp(). Наиболее часто используемым методом объекта RegExp является test(). Этот метод возвращает логическое значение true или false, в зависимости от соответствия или несоответствия строки, переданной методу в виде аргумента, данному шаблону. Например, можете убедиться, что

var pattern = new RegExp("http");
pattern.test("HTTP://WWW.W3C.ORG/");

возвратит false, поскольку шаблону соответствуют только строки, содержащие "http". Но можно проверить соответствие шаблону без учета регистра:

var patternlgnoringCase = new RegExp("http", "i");
patternlgnoringCase.test("HTTP://WWW.W3C.ORG/");

Тогда будет возвращено true, поскольку в данном случае поиск соответствия "http" в строке выполняется без учета регистра. Конечно, результата вы не увидите, пока не используете возвращаемое значение:

var patternlgnoringCase = new RegExp("http", "i");
alert(patternlgnoringCase.test("HTTP://WWW.W3C.ORG/"));

Автоматическое преобразование типов в JavaScript позволяет вызывать методы RegExp с литералами регулярных выражений (аналогично методам String с литералами строк). Например,

alert(/http/i.test("HTTP://WWW.W3C.ORG/"));

точно так же покажет true.


добавить комментарий
(без перезагрузки и регистрации)


10 случайных разделов

Что ищем на сайте ?


Примеры кода на сайте







@ 2008-2011 Amber
При использовании материалов ссылка на сайт обязательна
Яндекс.Метрика