Подтвердить что ты не робот

JavaScript.replace не заменяет все вхождения

Возможный дубликат:
Javascript multiple replace
Как заменить все вхождения "/" в строке с "_" в JavaScript?

В JavaScript "11.111.11".replace(".", "") выводится "11111.11". Как это может быть?

Скриншот Firebug:
Firebug Screenshot

4b9b3361

Ответ 1

Цитата из документ:

Чтобы выполнить глобальный поиск и заменить, включите переключатель g в регулярное выражение или если первый параметр является строкой, включите g в параметре flags. Примечание:Аргумент flags не работает в v8 Core (Chrome и Node.js) и будет удален из Firefox.

Итак, это должно быть:

"11.111.11".replace(/\./g, '');

Эта версия (на момент редактирования) работает в Firefox...

"11.111.11".replace('.', '', 'g');

... но, как отмечено на самой странице MDN, его поддержка скоро будет удалена.

Ответ 2

С регулярным выражением и флагом g вы получили ожидаемый результат

"11.111.11".replace(/\./g, "")

ВАЖНО использовать регулярное выражение, потому что это:

"11.111.11".replace('.', '', 'g'); // dont' use it!!

не является стандартным

Ответ 3

Прежде всего, replace() - это функция javascript, а не функция jquery.

Приведенный выше код заменяет только первое вхождение ".". (не каждый случай). Чтобы заменить каждое вхождение строки в JavaScript, вы должны предоставить методу replace() регулярное выражение с глобальным модификатором в качестве первого параметра, например:

"11.111.11".replace(/\./g,'')