Всем, кто когда-либо пытался сделать string.replace на javascript уже известно, что он делает замену только первого найденного вхождения. Поэтому сегодня мы рассмотрим как сделать Javascript replaceAll и заменять сразу все вхождения подстроки.
На самом деле, сделать это проще простого, и мы просто обернем его в прототип функции, чтобы было удобнее применять.
Javascript replaceAll: заменить всё на Javascript
Этот способ удобен тем, что его легко запомнить. Мы разобьём строку на кусочки, при этом разделителем будем считать искомую подстроку, а затем объеденим эти кусочки при помощи подстроки-замены.
То есть приблизительно вот так:
"наша строка".split("a").join("o"); //ношо строко
Думаю, это понятно, но писать такую конструкцию не так удобно, и поэтому, если javascript replaceall планируется использовать чаще одного раза в проекте, то рекомендую включить его в оболочку, и поместить как прототип функции для объекта строки:
String.prototype.replaceAll = function(search, replace){ return this.split(search).join(replace); }
Теперь можно использовать конструкцию:
"наша строка".replaceAll("а", "о"); //ношо строко
Готово!