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");

Стоит отметить, что второй подход, однако, медленнее.