Ответ: Просьба о помощи
Регулярные выражения – это своего рода шаблоны поиска определенных комбинаций символов в строках, при этом регулярные выражения заключаются в слэши. Ниже перечислены литералы регулярных выражений.
Литералы Литерал Описание
\ Входит в состав специальных символов, а так же дает понять интерпретатору, что следующий символ – не литерал. Используется перед восьмеричными кодами символов для извлечения из памяти сохраненных подвыражений и для использования в регулярном выражении литерала.
^ Начало строки
$ Конец строки
* Означает, что предшествующий символ должен встретиться в строке много раз или не встретиться
+ Означает, что предшествующий символ должен встретиться в строке один или несколько раз
? Означает, что предшествующий символ должен встретиться в строке один раз или не встретиться
{число} Означает, что предшествующий символ должен встретиться в строке указаное число раз
{число, } Означает, что предшествующий символ должен встретиться в строке указаное число раз и более
{число1, число2} Означает, что предшествующий символ должен встретиться в строке от первого до второго числа раз
. Означает любой символ кроме \n (новая строка)
(подвыражение) Ищет подвыражение и сохраняет в памяти найденую группу символов
\номер группы Извлекает указанную группу символов, сохраненную с помощью предыдущего литерала
символ1|символ 2 Ищет один из двух символов
[набор символов] Ищет символ из заданого набора
[^набор символов] Ищет любой символ, не вошедший в набор
\b Означает границу слова, позицию между словом и пробелом
\B Означает границу пробела, позицию между пробелом и словом
\c Совпадает с управляющем символом вида "Ctrl"+"символ"
\d Любая цифра
\D Любой нецифровой символ
\f Символ перевода страницы
\n Символ новой строки
\r Символ возврата каретки
\s Пробел, табуляция, новая строка или перевод строки
\t Табуляция
\v Вертикальная табуляция
\w Буква, цифра или подчеркивание
\xКод Символ с указанным шеснадцатеричным кодом
\oКод Символ с указанным восмеричным кодом
\номер группы Извлекает из памяти, сохраненную ранее группу символов с заданным номером
Пример
/(\w+)@
\w\._}+)/
Данное выражение ищет любой адрес электронной почты, разбивая его на две части:имя почтового ящика и имя сервера, и сохраняет их в памяти в виде групп символов под номерами 1 и 2.
Класс RegExp
Этот класс отвечает за обработку строк с помощью регелярных выражений. Его конструктор имеет следующий вид:
RegExp(Регулярное выражение, Флаги)
Он принимает только один обязательный пареметр – это "Регулярное выражение", которое заключается в кавычки. Параметр "флаги" представляет собой дополнительные условия поиска и может принимать значения:
g – задается глобальный поиск, если етот флаг установлен, то выражение возвратит все подходящие слова.
i - игнорирование регистра символов
m – многострочный поиск
Для работы с регулярными варажениями используются три метода класса String:
match - выполняет поиск в строке, используя регулярное выражение, переданное в качестве параметра и возвращает массив с результатами поиска. Если ничего не найдено, возвращается null.
replase - выполняет поиск и замену в строке, используя регулярные выражения, и возвращает полученную строку.
search - выполняет поик в строке, используя регулярное выражение, переданное в качестве параметра, и возвращает позицию первой подстроки, совпадающей с регулярным выражением.
Свойства Свойство Описание
lastIndex Задает позицию начала поиска в строке
sourse Возвращает строку регулярного выражения (только чтение)
global Определяет наличие флага g и возвращает соответсявенно true или false
ignoreCase Определяет наличие флага i и возвращает соответсявенно true или false
multilane Определяет наличие флага m и возвращает соответсявенно true или false
Методы Метод Описание
compile (Регулярное выпажение g,i,m) Компелирует регулярное выражение во внутренний формат для ускорения работы, может использоваться для изменения регулярного выражения
exec(строка) Аналогичен методу match класса String, но строка, где нужно произвести поиск, передается в качестве параметра
test(строка) Аналогичен методу search класса String, возвращает true или false в зависимости о результатов поиска
Пример
var result, re, str;
str="http://www.netscape.com";
re=new RegExp ("w{3}","i");
result=str.match(re)
Здесь этот участок скрипта производит поиск текста "www" в строке, которая была присвоена переменной "str" без учета регистра, а метод match возвращает массив result, содержащий результаты поиска.
Глобальный объект RegExp
Этот глобальный объект служит для боступа к результатам поиска с использованием регулярных выражений. Этот объект создается самим интерпритатором и доступен всегда. Формат доступа к его свойствам:
RegExp.свойство
Свойства Свойство Описание
$номер подвыражения Возвращает одно из последних найденых подвыражений (зависит от номера). Номер может быть 1-9, т.к.интерпретатор хранит в этом свойстве только девять последних найденых подвыражений, для доступа к остальным используется массив, возвращенный методами match или exec
index Возвращает позоцию в строке найденой подстроки
input|&_ Возвращает строку, где производится поиск
lastIndex Задает позицию начала поиска в строке
lastMatch|$& Возвращает последнюю найденую подстроку
lastParent|$+ Возвращает последнюю найденую группу символов, если в регулярном выражении использовались подвыражения
leftContext|$' Возвращает строку, составленую из всех символов от начала строки до последней найденой подстроки, не включая ее
rightContext|$' Возвращает строку, составленую из всех символов от последней найденой подстроки, не включая ее, до конца исходной строки
Примеры использования Регулярных выражений
var re, str, protocol, address, filename, result;
str="http//www.somedomain.ru/index2.html";
re=new RegExp("((\w+): \/\/)?([^/]+) (.*)?","i");
result=re.exec(str);
if (result !=null){
protocol=RegExp.$2;
address=RegExp.$3;
filename=RegExp.$4;
}
Данный скрипт разбивает интернет адресс на несколько составных частей. В регелярном выражении использовалось несколько подвыражений, которые сохраняются интерпритатором следующим образом: сначала сохраняется внешнее выражение, а затем внутренее. После регулярного выражения следует строка (result=re.exec(str)
, которая начинает разбивание адреса, а далее проверяется правильность адреса и, в случае положительного результата, происходит присваивание переменным соответствующих частей адреса.
http://www.mike-03.narod.ru/internet/JavaScript/indexJs.html