Метод replace

Возвращает копию строки с текстом, замененным с помощью регулярного выражения или строки поиска.

function replace(rgExp : RegExp, replaceText : String) : String

Аргументы

  • rgExp
    Обязательный. Экземпляр объекта Regular Expression, содержащий шаблон регулярного выражения и установленные флаги. Также может быть объектом String или литералом. Если аргумент rgExp не является объектом Regular Expression, он преобразуется в строку и затем выполняется поиск точного соответствия результату этого преобразования; попытка преобразовать строку в регулярное выражение не предпринимается.

  • replaceText
    Обязательный. Объект String или строковый литерал, содержащий текст, которым требуется заменить все успешно найденные соответствия аргумента rgExp в текущем строковом объекте. В JScript 5.5 или более поздней версии аргумент replaceText может также быть функцией, возвращающей текст для замены.

Заметки

Результатом метода replace является текущий строковый объект после выполнения указанных замен.

Ниже указаны переменные соответствия, которые можно использовать для определения последнего найденного соответствия и содержащей его строки. Переменные соответствия можно использовать при замене текста, если строка для замены должна определяться динамически.

Знаки

Значение

$$

$ (JScript 5.5 или более поздней версии)

$&

Указывает фрагмент текущего строкового объекта, который полностью совпадает с шаблоном. (JScript 5.5 или более поздней версии).

$`

Указывает фрагмент текущего строкового объекта, который предшествует совпадению, описанному переменной $& (JScript 5.5 или более поздней версии).

$'

Указывает фрагмент текущего строкового объекта, который следует за совпадением, описанным переменной $& (JScript 5.5 или более поздней версии).

$n

n-я найденная подстрока, где n — отдельная цифра от 1 до 9. (JScript 5.5 или более поздней версии).

$nn

nn-я найденная подстрока, где nn — двузначное десятичное число от 01 до 99. (JScript 5.5 или более поздней версии).

Если аргумент replaceText является функцией, то для каждого частичного совпадения вызывается функция, количество аргументов которой равно m + 3, где m — число круглых скобок, обозначающих отдельные шаблоны в аргументе rgExp. Первым аргументом является подстрока, поиск которой выполняется. Следующие m аргументов — это все совпадения, обнаруженные во время поиска. Аргумент с номером m + 2 — это смещение в текущем строковом объекте, содержащем найденное совпадение, а аргумент с номером m + 3 — текущий строковый объект. Результатом является строка, в которой все найденные подстроки заменены соответствующий значением, возвращенным вызываемой функцией.

Метод replace обновляет свойства глобального объекта RegExp.

Пример

В следующем примере показано использование метода replace для замены всех вхождений "the" на "a".

function ReplaceDemo()
{
    var s = "The batter hit the ball with the bat ";
    s += "and the fielder caught the ball with the glove.";

    // Replace "the" with "a".
    var re = /the/g;
    var r = s.replace(re, "a");
    return(r);
}

Кроме того, метод replace может заменять подвыражения в шаблоне. В следующем примере меняются местами все пары слов в строке.

function ReplaceDemo(){
    var s = "The quick brown fox jumps over the lazy dog.";
    // Create regular expression pattern.
    var re = /(\S+)(\s+)(\S+)/g;
    // Exchange each pair of words.
    var r = s.replace(re, "$3$2$1");
    return(r);
}
    // Output:  quick The fox brown over jumps lazy the dog.

В следующем примере, который работает в JScript 5.5 и более поздних версий, выполняется преобразование градусов по Фаренгейту в градусы по Цельсию. В нем также показано, как использовать функцию, которая возвращает текст замены. Чтобы увидеть работу этой функции, передайте в нее строку, содержащую число, непосредственно за которым будет следовать буква "F" (например, "Вода закипает при температуре 212F").

function f2c(s1) {
    // Initialize pattern.
    var test = /(\d+(\.\d*)?)F\b/g;

    // Use a function for the replacement.    
    var s2 = s1.replace(test,
       function($0,$1,$2)
           { 
           return((($1-32) * 5/9) + "C");
           }
      )
  return s2;
}
print(f2c("Water freezes at 32F and boils at 212F."));

Требования

Версия 1

Применение:

Объект String

См. также

Ссылки

Метод exec

Метод match

Объект RegExp

Метод search

Метод test