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


Объект RegExp | replace()
Метод replace() возвращает строку, полученную в результате замены текста, соответствующего первому аргументу (регулярному выражению), на текст второго аргумента (строки). Если в декларации регулярного выражения не был установлен флаг g (флаг глобальности), то метод заменит только первое соответствие шаблону. Например,

var s = "Привет. Регулярные выражения - это просто прелесть.";
// замена первой точки восклицательным знаком:
s = s. replace (/\./, "!");
alert(s);

выдает строку "Привет! Регулярные выражения - это просто прелесть.". Включение флага g заставит интерпретатор выполнить глобальную замену, находя и заменяя каждую соответствующую подстроку. Например,

var s = "Привет. Регулярные выражения - это просто прелесть.";
// замена врех точек восклицательными знаками:

s = s. replace (/\./g, "!");
alert(s);

дает в результате "Привет! Регулярные выражения - это просто прелесть!".

replace() с подвыражениями

   Напомним, что на подвыражения, заключенные в круглые скобки, можно ссылаться по номеру с помощью объекта класса RegExp (Например, RegExp.$1). Эту возможность удобно использовать в replace() для ссылок на определенные части строки. Подстроки, соответствующие заключенным в скобки подвыражениям, указываются в строке замены с помощью знака доллара ($) и номера нужного подвыражения. Например, ниже вставляются дефисы в номер социальной страховки:

var pattern - /(\d{3})(\d{2})(\d{4})/;
var ssn = "123456789";
ssn = ssn.replace(pattern, "$l-$2-$3");

Результат "123-45-6789" помещается в переменную ssn.
   Эта технология называется технологией возвратной ссылки; она незаменима при форматировании данных. Сколько раз вы вводили телефонные номера в Web-формы и получали в ответ, что необходимо указать (или, наоборот, не указывать) дефисы? С помощью регулярных выражений и технологии возвратных ссылок эту проблему очень просто обнаружить и решить, поэтому рассмотрите возможность использования этой технологии для обработки вводимых данных, слегка отклоняющихся от требуемых шаблонов. Например, в следующем сценарии выполняется нормализация представления телефонных номеров:

function normalizePhone(phone)
{
var pi = /(\d(3))(\d(3()(\d{4})/;
// например, 4155551212
var p2 = /\((\d{3})\)\s+(\d{3})[^\d]+(\d{4))/;
// например, (415)555-1212
phone = phone.replace(p1, "$1-$2-$3");
phone = phone.replace(p2, "$1-$2-$3");
return phone;
}

назад: splite() далее: match()


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


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

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


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







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