JavaScript метод replace()
JavaScript StringОпределение и применение
JavaScript метод replace() выполняет внутри строки поиск с использованием регулярного выражения (объект RegExp), или строкового значения и возвращает новую строку, в которой будут заменены найденные значения.
Обращаю Ваше внимание, что eсли для регулярного выражения используется глобальный флаг g (global match flag), то метод replace() заменяет все найденные совпадения строкой замены. Если флаг g не используется, то метод replace() осуществляет замену только первого совпадения.
Поддержка браузерами
Метод | Chrome | Firefox | Opera | Safari | IExplorer | Edge |
---|---|---|---|---|---|---|
replace() | Да | Да | Да | Да | Да | Да |
JavaScript синтаксис:
string.replace(searchValue, newValue); searchvalue - RegExp || String newValue - String || Function
Версия JavaScript
ECMAScript 3. JavaScript 1.2.Значения параметров
Параметр | Описание | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
searchvalue | Объект регулярного выражения или строковое значение. Если аргумент является строкой, а не регулярным выражением, то метод replace() выполняет буквальный поиск строки, а не преобразует его в регулярное выражение с помощью вызова конструктора new RegExp(regexp). | ||||||||||||
newValue | Строка, определяющая текст для замены, или функция, которая вызывается для генерации текста замены. Строка замены может включать следующие специальные шаблоны замены:
Обратите внимание на то, что если аргумент является функцией, то она будет вызываться для каждого найденного соответствия, а возвращаемая ею строка будет использоваться в качестве текста для замены.
Важный момент заключается в том, что точное число аргументов зависит от того, был ли первый аргумент объектом RegExp, если да, то сколько подгрупп в нём определено. |
Пример использования
Использование флагов g и i с методом replace()
const str = 'Ты кто такой? Что ты делаешь?'; // инициализируем строковое значение const newstr = str.replace(/ты/gi, 'вы'); console.log(newstr); // "вы кто такой? Что вы делаешь?"
Перестановка слов местами
const str = 'Boris Britva'; // инициализируем строковое значение const newstr = str.replace(/(\w+)\s(\w+)/, '$2 $1'); console.log(newstr); // Britva Boris
Перевод первых букв всех слов в верхний регистр с помощью функции замены
const str = 'андрей, артем, иван, вазген'; // инициализируем строковое значение const func = (word) => word.substring(0,1).toUpperCase() + word.substring(1); // инициализируем функцию замены const newstr = str.replace(/([^\s]+)/g, func); console.log(newstr); // "Андрей, Артем, Иван, Вазген"
Определенный символ в качестве разделителя числа
const num = 123456789; // инициализируем числовое значение const re = /\B(?=(\d{3})+(?!\d))/g; // инициализируем регулярное выражение const newstr = num.toString().replace(re, ','); // запятые в качестве разделителя числа const newstr2 = num.toString().replace(re, ' '); // пробелы в качестве разделителя числа console.log(newstr); // "123,456,789" console.log(newstr2); // "123 456 789"JavaScript String