Аналог 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 строк создавать не нужно, что я тоже видел несколько раз, пока искал чужое решение.
-
- Михаил Русаков
Комментарии (1):
Блестящее решение!
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.