Javascript replaceAll не работает
Возможный дубликат:
Замена всех вхождений строки в javascript?
Мне нужно заменить всю строку в переменной.
<script>
var a="::::::";
a = a.replace(":","hi");
alert(a);
</script>
Выше кода заменяет только первую строку i.e.. hi::::::
Я использовал replaceAll
, но не работал.
Прошу вас, спасибо
Ответы
Ответ 1
В JavaScript нет replaceAll
: консоль ошибок, вероятно, сообщала об ошибке. Обратите внимание!
Вместо этого используйте модификатор /g
( "сопоставить глобально" ) с аргументом регулярного выражения replace
:
var a="::::::";
a = a.replace(/:/g,"hi");
alert(a);
Заглавие MDN: String.replace (и в другом месте).
Ответ 2
В JavaScript нет функции replaceAll
.
Вы можете использовать регулярное выражение с глобальным идентификатором, как показано в ответе pst:
a.replace(/:/g,"hi");
Альтернатива, которую предпочитают некоторые люди, поскольку она устраняет необходимость в регулярных выражениях, заключается в использовании функций JavaScript split
и join
следующим образом:
a.split(":").join("hi");
Стоит отметить, что второй подход, однако, медленнее.