2012-07-04 31 views
24

Tôi cần phải thay thế tất cả các chữ số.JS regex: thay thế tất cả các chữ số trong chuỗi

Chức năng của tôi chỉ thay thế chữ số đầu tiên.

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

tôi nghĩ rằng bạn cần sự toàn cầu thay thế tùy chọn. Và '[0-9]' có thể được đơn giản hóa thành '\ d'. – nhahtdh

Trả lời

49

Bạn cần phải thêm "toàn cầu" cờ để regex của bạn:

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

hoặc, có lẽ đẹp hơn, bằng cách sử dụng built-in đen cú pháp regexp:

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

Làm cách nào để thay thế chúng bằng ký tự unicode thay vì 'X'? Ví dụ '\ U2022'? Câu trả lời – Cmag

+1

: 'thay thế (/ [0-9]/g, '\ u2022');' – Cmag

7

Sử dụng

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

mà sẽ thay thế tất cả các lần xuất hiện. Số g nghĩa là kết hợp toàn cầu và do đó sẽ không ngừng đối sánh sau lần xuất hiện đầu tiên.

Hoặc ở lại với RegExp constructor của bạn:

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

/gmodifier được sử dụng để thực hiện một trận đấu toàn cầu (tất cả các trận đấu chứ không phải dừng lại sau khi người đầu tiên)

Bạn có thể sử dụng\dcho chữ số, vì nó ngắn hơn[0-9].

JavaScript:

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

Output:

XX.XX.XXXX 
2

tìm những con số và sau đó thay thế bằng chuỗi mà xác định. Nó được thực hiện bằng hai phương pháp

  1. Sử dụng một biểu thức chính quy theo nghĩa đen

  2. Sử dụng đối tượng từ khóa RegExp

Sử dụng một biểu thức chính quy theo nghĩa đen:

<script type="text/javascript"> 

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

</script> 

* * Đầu ra: ** số liên lạc của tôi là X XX. tuổi của tôi là XXX.

để biết thêm chi tiết:

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

Các vấn đề liên quan