Справочник по 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."
Поддержка
Смотрите также
Ссылки на источники
https://msdn.microsoft.com/en-us/library/t0kbytzc(v=VS.85).aspx