Справочник по JScript : Методы JScript : Метод replace

смотрим также
    По материалам: #.

Материал из Справочник Web-языков

Перейти к: навигация, поиск


Содержание

Метод replace

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

Синтаксис

stringObj.replace(rgExp, replaceText)

Аргументы

stringObj
Обязательный аргумент. Объект String или строковый литерал к которому будут применены изменения. Эта строка не модифицируется методом replace.
rgExp
Обязательный аргумент. Экземпляр объекта Regular Expression, содержащий шаблон регулярного выражения и установленные флаги. Также может быть объектом String или литералом. Если rgExp не является экземпляром объекта Regular Expression, то он конвертируется в строку, и производится точный поиск для результатов. Никаких попыток конвертировать строку в регулярное выражение не производится.
replaceText
Обязательный аргумент. Объект String или строковый литерал, содержащий текст, которым надо заменить каждое найденное совпадение аргумента rgExp в stringObj. В JScript 5.5 или выше аргумент replaceText может содержать функцию, которая возвращает нужный текст.

Описание

Метод replace возвращает копию строки из stringObj с произведенными в ней изменениями.

Далее приведен список переменных соответствия, которые могут быть использованы для идентификации последнего найденного соответствия и строки, в которой это соответствие находится. Также переменные соответствия могут быть использованы при замене текста когда строка для замены определяется динамически.

Обозначение Значение
$$ $ (в JScript 5.5 и более поздних версиях).
$& Определяет фрагмент stringObj, который полностью совпадает с указанным шаблоном (в JScript 5.5 и более поздних версиях).
$` Определяет фрагмент stringObj, который предшествует фрагменту, описанному в $& (в JScript 5.5 и более поздних версиях).
$' Определяет фрагмент stringObj, который следует за фрагментом, описанным в $& (в JScript 5.5 и более поздних версиях).
$n n-е найденное подсовпадение, где n - число от 1 до 9 (в JScript 5.5 и более поздних версиях).
$nn nn-е найденное подсовпадение, где n - число от 01 до 99 (в JScript 5.5 и более поздних версиях).

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

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

Метод применяется к объекту: String Object (Windows Scripting - JScript).

Пример

В первом примере показано как используется метод 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.";

    // заменим "the" на "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.";
    // Создаем регулярное выражение
    var re = /(\S+)(\s+)(\S+)/g;
    // Меняем пары слов
    var r = s.replace(re, "$3$2$1");
    return(r);

    // Получим:  quick The fox brown over jumps lazy the dog.
}

В третьем примере преобразуем градусы по Фаренгейту в градусы по Цельсию. Пример работает в JScript 5.5 или выше. В примере используется функция замены текста, чтобы увидеть как она работает, просто передайте в нее строку с буквой F после числа. Например, "Water boils at 212F" - "Вода закипает при температуре 212 градусов по Фаренгейту".

function f2c(s1) {
    // Инициализация шаблона
    var test = /(\d+(\.\d*)?)F\b/g;

    // Используем функцию для преобразования
    var s2 = s1.replace(test,
      function($0,$1,$2)
           { 
           return((($1-32) * 5/9) + "C");
           }
        )
    return s2;
}
document.write(f2c("Water freezes at 32F and boils at 212F.")); //"Вода замерзает при 32F и кипит при 212F."

Поддержка

JScript Version 1

Смотрите также

Ссылки на источники

https://msdn.microsoft.com/en-us/library/t0kbytzc(v=VS.85).aspx

Добавить страницу в закладки:
РАЗРЕШАЕТСЯ перепечатывать и копировать информацию ТОЛЬКО ПРИ РАЗМЕЩЕНИИ ссылки на оригинал!
(<A href="https://www.spravkaweb.ru/">Справочник Web-языков</A>)
другие проекты
Rambler\'s Top100 Индекс цитирования