Справочник javascript: replace

Илья Кантор, 10 мая 2009 — 17:48

Синтаксис

str.replace(regexp, newSubStr|function)

Аргументы

regexp
объект типа RegExp или строка
newSubStr|function
новая подстрока или функция, которая ее возвращает

Описание, примеры

Этот метод не меняет вызывающую строку, а возвращает новую, после замен.

Чтобы произвести глобальный поиск и замену, используйте regexp c флагом «g».

Строка замены

Если вы указываете строку как второй параметр — она может включать в себя следующие специальные сочетания:

$$
Вставляет «$»
$&
Вставляет совпавшую подстроку
$`
Вставляет часть строки, которая предшествует совпавшей подстроке
$’
Вставляет часть строки, которая следует за совпавшей подстрокой
$n или $nn, где n/nn — десятичные цифры
Вставляет n-ю скобку в совпадении, если первый аргумент — объект RegExp

Функция замены

Если вы указываете функцию в качестве второго параметра, то она вызывается при каждом совпадении.

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

Функция может использовать совпавшие подстроки — она их получает в параметрах вызова. Первый параметр всегда содержит полную совпавшую подстроку.

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

Наконец, последние два параметра — позиция, на которой произошло совпадения и вызывающая строка.

Следующий пример вернет my XX, zz.

function replacer(str, p1, p2, offset, s) {
  return p1 + ", " + p2;
}
newString = "my XXzz".replace(/(X+)(z+)/, replacer)

Значения параметров при вызове replacer:

str
"XXzz" — совпавшая подстрока
p1
"XX" — первая скобка
p2
"zz" — вторая скобка
offset
3 — позиция в тексте для поиска
s
"my XXzz" — вызывающая строка, т. е строка для поиска

В следующем примере используется строка замены. Глобального поиска при этом не происходит.

Пример: строка замены

str = "тест еще тест"
str.replace("тест","прошел") // = "прошел еще тест"

Для глобального поиска используйте регулярное выражение.

Пример: Глобальная замена строки

str = "тест еще тест"
str.replace(/тест/g,"прошел") // = "прошел еще прошел"
// или так
str.replace(new RegExp("тест",'g'),"прошел")

Следующий пример использует при замене сочетания $1 и $2 для ссылок на результат поиска.

Пример: Замена со ссылками

var re = /(\w+)\s(\w+)/;
var str = "John Smith";
var newstr = str.replace(re, "$2, $1") // "Smith, John"

Как получить только цифры из строки? — efim360.ru

Есть строка:

var stroka = "Привет1274 ме234ня зо65вут 7987Ефим!"

Нам нужно из этой строки удалить все буквы и оставить только символы и цифры. 0-9,\s]/g,»»)

Получим строку:

"1274 234 65 7987"

В диапазон символов мы добавили пробел, поэтому нам вернулась строка с пробелами.

 

Альтернативный синтаксис

Можно использовать специальный экранированный класс символа (CharacterClassEscape), который обозначается буквой D.

Производства CharacterClassEscape — ECMAScript 2021

Он находит сопоставления в строке, которые НЕ равны набору из десяти цифр.

Семантика времени выполнения: компиляция в набор символов — производства «CharacterClassEscape :: d» и «CharacterClassEscape :: D»

Он экранированный — это значит, что перед D мы должны будем поставить символ обратной косой черты \. Ну и конечно это всё мы будем вводить внутри шаблона регулярного выражения, который обозначается границами в виде двух косых линий / /.

 

То есть мы можем найти в строке все места где символ не соответствует одному из: 0123456789

var stroka = "Привет1274 ме234ня зо65вут 7987Ефим!"
stroka. replace(/\D/g,'')
'1274234657987'
Производство CharacterClassEscape :: D — ECMAScript

 

Информационные ссылки

Стандарт ECMAScript — Раздел «CharacterClass» — https://tc39.es/ecma262/#sec-characterclass

Стандарт ECMAScript — Раздел «ClassRanges» — https://tc39.es/ecma262/#sec-classranges

Стандарт ECMAScript — Раздел «NonemptyClassRanges» — https://tc39.es/ecma262/#sec-nonemptyclassranges

Стандарт ECMAScript — Раздел «CharacterClassEscape :: D» — https://tc39.es/ecma262/multipage/text-processing.html#prod-CJ70Staj

Стандарт ECMAScript — Раздел «String.prototype.replace ( searchValue

, replaceValue )» — https://tc39.es/ecma262/#sec-string.prototype.replace

Стандарт ECMAScript — Раздел «get RegExp.prototype.flags» — https://tc39. es/ecma262/#sec-get-regexp.prototype.flags

ECMAScript | Условные обозначения

 

Как заменить строку в JavaScript – TecAdmin

Мы можем использовать метод replace() для замены любой строки или символа другим в javascript. Он ищет определенную строку, символ или регулярное выражение и заменяет их. Этот метод не изменяет исходную строку, но в качестве результата возвращает обновленную строку.

Реклама

Синтаксис:

 string.replace(old_string, new_string)
 

Заменить строку в JavaScript примерами

В этом уроке мы обсудим несколько примеров замены строк в Javascript.

Давайте попробуем несколько примеров:

  • Вот первый пример инициализации текста в переменной, а затем замены его другим текстом.

    let str = «Привет, мир!» пусть результат = str.replace («Мир», «TecAdmin») console.log(результат)

    let str = «Привет, мир!»

    let result = str. replace(«World», «TecAdmin»)

     

    console.log(результат)

    Запустите приведенный выше пример и посмотрите результаты. Спасибо playcode.io, который помог мне запустить javascript онлайн.

    Заменить строку в javascript
  • Что произойдет, если заданная строка будет найдена несколько раз. В этом случае функция replace() заменит первое вхождение данной строки.

    let str = «У мистера Бина есть зеленое яблоко и красное яблоко» пусть результат = str.replace («Яблоко», «Клубника») console.log(результат)

    let str = «У мистера Бина есть зеленое яблоко и красное яблоко»

     

    let result = str.replace(«Яблоко», «Клубника»)

     

    console.log(result)

    Выполните приведенный выше код и посмотрите результаты:

    Замените первую совпадающую строку в javascript

    Результат ясно показывает, что первое вхождение заменяется новой строкой, но второе вхождение не заменяется. Итак, как я могу заменить все вхождения данной строки? Давайте проверим следующий пример:

  • Мы также можем определить регулярное выражение, и функция заменит все вхождения, соответствующие этому регулярному выражению.

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

    let str = «У мистера Бина зеленое яблоко и красное яблоко» константное регулярное выражение = «/Apple/ig» пусть результат = str.replace («Яблоко», «Клубника») console.log(результат)

    1

    2

    3

    4

    5

    6

    let str = «У мистера Бина зеленое яблоко и красное яблоко»

     

    const regex = «/Apple/ig»

    let result = str.replace(«Apple», «Клубника» )

     

    console.log(result)

    Запустите приведенный выше пример и посмотрите результаты.

    Заменить строку регулярным выражением в JavaScript
  • Обычно регулярное выражение используется для сопоставления с шаблонами.
    Чтобы заменить все вхождения любой строки, мы можем использовать функция replaceAll() .

    В приведенном ниже примере используется функция replaceAll() в javascript.

    let str = «У мистера Бина зеленое яблоко и красное яблоко» пусть результат = str.replaceAll («Яблоко», «Клубника») console.log(result)

    let str = «У мистера Бина зеленое яблоко и красное яблоко»

     

    let result = str.replaceAll(«Apple», «Клубника»)

      900 03

    console.log(result)

    Запустите приведенный выше код и посмотрите результаты.

    Заменить все совпадающие строки в JavaScript

Подведение итогов

В этом руководстве мы рассмотрели несколько примеров замены строки в JavaScript.

javascript js строка

Поделиться. Фейсбук Твиттер Пинтерест LinkedIn Тамблер Электронная почта WhatsApp

replace test — Regex Tester/Debugger

Регулярное выражение
  • JavascriptPCRE
  • флаги

Тестовая струна

abc12345#$*%

Замена
replace test
Комментарии


Руководство по размещению сообщенийФорматирование



Верхние регулярные выражения

Проверка URL с http:// или https:// или без них
Сопоставить строку, не содержащую строку
Проверить, только ли строка содержит цифры
Только буквы и цифры
Соответствие элементам URL
Регулярное выражение проверки URL | Регулярное выражение — Taha
Соответствие адресу электронной почты
Проверка IP-адреса
Проверка nginx
Соответствие целому слову
Сопоставление или проверка номера телефона
Соответствие тегу html
Поиск подстроки в строке, которая начинается и заканчивается скобками
Блокировка сайта с незаблокированными играми
Даты совпадения (М/Д/ГГ, М/Д/ГГГ, ММ/ДД/ГГ, ММ/ДД/ГГГГ)
Пустая строка
Проверяет длину числа и не начинается с 0
Соответствует, если не начинается со строки
RegEx для Json
Соответствует чему-либо после указанного

Шпаргалка

9абв$
Классы символов
. любой символ кроме новой строки
\ш\д\с слово, цифра, пробел
\Ш \Д \С не слово, цифра, пробел начало/конец строки
граница слова
Экранированные символы
\. \*\ экранированные специальные символы
\т \н \р табуляция, перевод строки, возврат каретки
\u00A9 Юникод сбежал ©
Группы и поиск
(абв) группа захвата
\1 обратная ссылка на группу #1
(?:abc) группа без захвата
(?=abc) положительный прогноз
(?!abc) отрицательный просмотр вперед
Квантификаторы и чередование
а* а+ а? 0 или более, 1 или более, 0 или 1
а{5} а{2,} ровно пять, два или больше
а{1,3} между одним и тремя
а+? а{2,}? соответствует как можно меньшему числу
аб|кд соответствует ab или cd

Regex Tester еще не оптимизирован для мобильных устройств.