JavaScript: Функция, для замены всех найденных подстрок

2011-01-31

К сожалению, встроенный метод для замены найденных подстрок replace(), умеет заменять только первую найденную подстроку. А что делать, если нужно заменить все найденные подстроки?

Вот элегантная реализация:

function replaceAll(str, what, to) {
return str.split(what).join(to);
}

Функция replaceAll находит в строке str, все подстроки what, и заменяет их на to.

Пример использования:

var res = replaceAll("555-55-55", "55", "11");
// res = "115-11-11";

При желании, можно реализовать данную функцию в качестве метода объекта String (аналогично методу replace()), кому как удобнее.



2 комментария на «JavaScript: Функция, для замены всех найденных подстрок»

  1. Сова:

    >>>К сожалению, встроенный метод для замены найденных подстрок replace(), умеет заменять только первую найденную подстроку.

    неправда…. )) учите матчасть!
    параметр /g в функции replace — и происходит замена всех входящих значений в строке.

    str = str.replace(/123/g, "456" );

  2. Talker:

    Спасибо, помогло ))

Добавить комментарий