2012-07-04 3 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

이보다 짧은[0-9]같이 /g수정은

당신은 숫자에\d를 사용할 수있는 글로벌 일치를 수행 (오히려 처음 후에 중지보다 모든 일치를 찾을 수)하는 데 사용됩니다.

자바 스크립트 :

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

출력 :

XX.XX.XXXX 
2

지정한 문자열로 대체 한 후 번호를 찾을 수 있습니다.

<script type="text/javascript"> 

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

</script> 

* 이것은 두 가지 방법

  1. 문자 정규 표현을 이용하여 키워드 정규식 개체에게

사용

  • 문자 정규 표현을 이용함으로써 달성된다 * 출력 : ** 내 연락처 번호는 X입니다. 더블 엑스. 내 나이는 XXX이야. 자세한 내용은

    :

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