В PHP есть замечательная функция str_replace() , которая осуществляет замену одной подстроки на другую. В JavaScript 100% аналога нет , однако, он бывает необходим, и об аналоге str_replace() в JavaScript я и расскажу.

Аналог str_replace() в JavaScript

В PHP есть замечательная функция str_replace(), которая осуществляет замену одной подстроки на другую. В JavaScript 100% аналога нет, однако, он бывает необходим, и об аналоге str_replace() в JavaScript я и расскажу.

Не так давно мне необходимо было получить в JavaScript текстовые данные из контейнера и вставить их в textarea. Но в контейнере были так же и теги <br />, которые в textarea так и выводились, однако, надо было, чтобы был переход на новую строку, а не вывод этого тега.

Таким образом, передо мной встала задача замены тегов перехода на новую строку в HTML на текстовый переход, то есть на "\n".

Первое, что я сделал, это решил поискать аналог str_replace() в JavaScript в поисковой системе, однако, ничего порядочного не нашёл, поэтому пришлось думать самому. В JavaScript есть функция replace():

var temp = "Строка<br>Строка<br>Строка";
temp = temp.replace("<br>", "\n");

Однако, эта функция заменяет только первое вхождение, а не все, как это делает str_replace() в PHP. Безусловно, можно сделать бесконечный цикл, где постоянно заменять строку пока не останется больше <br>. Но есть более красивый способ решения:

var temp = "Строка<br>Строка<br>Строка";
temp = temp.replace(/<br>/g, "\n");

Мы заменили строку на регулярное выражение с глобальным поиском (модификатор g). В результате, теперь все найденные совпадения будут заменены.

Вот такой аналог str_replace() можно легко сделать в JavaScript, и никаких функций по 50 строк создавать не нужно, что я тоже видел несколько раз, пока искал чужое решение.