2012-07-04 2 views
24

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

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

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

Я думаю, что вам нужен глобальный вариант замены. И '[0-9]' можно упростить до '\ d'. – nhahtdh

ответ

49

Вы должны добавить «глобальный» флаг вашего регулярное выражения:

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

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

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

Как заменить их символом юникода вместо 'X'? Например, '\ U2022'? – Cmag

+1

Ответ: 'replace (/ [0-9]/g, '\ u2022');' – Cmag

7

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

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

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

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

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

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

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

JavaScript:

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

Выход:

XX.XX.XXXX 
2

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

  1. Использование регулярных выражений буквального

  2. Используя объект ключевое слово РегВыр

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

<script type="text/javascript"> 

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

</script> 

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

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

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

Смежные вопросы