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

JS regex: заменить все цифры в строке

Мне нужно заменить все цифры.

Моя функция заменяет только первую цифру.

var s = "04.07.2012";
alert(s.replace(new RegExp("[0-9]"), "X")); // returns "X4.07.2012"
                                            // should be XX.XX.XXXX"
4b9b3361

Ответ 1

Вам нужно добавить флаг "global" в ваше регулярное выражение:

s.replace(new RegExp("[0-9]", "g"), "X")

или, может быть, более красиво, используя встроенный синтаксис регулярного выражения:

.replace(/[0-9]/g, "X")

Ответ 2

Использование

s.replace(/\d/g, "X")

который заменит все вхождения. g означает глобальное совпадение и, следовательно, не прекратит сопоставление после первого появления.

Или остаться со своим конструктором RegExp:

s.replace(new RegExp("\\d", "g"), "X")

Ответ 3

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

Вы можете использовать \d для цифры, так как она короче [0-9].

JavaScript:

var s = "04.07.2012"; 
echo(s.replace(/\d/g, "X"));

Вывод:

XX.XX.XXXX

Ответ 4

найдите числа, а затем замените на указанные строки. Это достигается двумя способами:

  • Использование литерала регулярного выражения

  • Использование ключевого слова RegExp object

Использование литерала регулярных выражений:

<script type="text/javascript">

var string = "my contact number is 9545554545. my age is 27.";
alert(string.replace(/\d+/g, "XXX"));

</script>

** Выход: ** мой контактный номер - XXX. мой возраст равен XXX.

для более подробной информации:

http://www.infinetsoft.com/Post/How-to-replace-number-with-string-in-JavaScript/1156