Как заменить все вхождения строки в JavaScript?

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

Пример

 
str = "one two three one five nine";
newStr = str.replace('one', 'XXX');
alert(newStr);

Когда вы запустите код, выше сценарий вернет «XXX два три один пять девять». Здесь вы можете видеть, сначала «один» заменяется на «XXX», а второй «один» все еще там. Итак, как вы можете изменить все вхождения строки в JavaScript?

Заменить все вхождения с помощью Split() и join()

Вы можете заменить все вхождения строки с помощью функций Split() и join(). Строка, в которую вы ввели split() с указанным словом, и снова соединитесь с замещенным словом.

Пример

 
str = "one two three one five nine";
newStr =  str.split("one").join("XXX");;
alert(newStr);

Выход

 
XXX two three XXX five nine

Заменить все вхождения, используя RegularExpression

 
str = "one two three one five nine";
newStr =  replaceAll(str,'one','XXX');
alert(newStr);
function replaceAll(str, find, replace) {
    return str.replace(new RegExp(find, 'g'), replace);
}

Источник: http://net-informations.com/js/iq/repl.htm

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Adblock
detector