자바스크립트에서 replace 를 사용할 때 단순히

replace('a', 'b') 

라고 쓰면 맨 처음 나타나는 'a' 만을 'b' 로 단 하나만 바꾸어 준다.

하지만 정규식을 이용한다면 모든 'a' 를 'b' 로 바꾸는 것도 가능하다.

replace(/a/gi, 'b')

처럼 말이다.

여기서 a 를 바꾸어질 문자(열), b 는 바뀔 문자(열)가 되겠다.

원한다면 무엇을 바꾸어도 되겠지..

g 의 의미는: 발생할 모든 pattern에 대한 전역 검색 

i 의 의미는: 대/소문자 구분 안함 

m 의 의미는: 여러 줄 검색(여기서는 사용하지 않았다. 원한다면 하자.)

문자열을 바꾸고 싶다면 문자열을 입력해 주자.

아래 소스는 abc 라는 문자열을 def 라는 문자열로 바꾸어 주는 소스이다.

replace(/abc/gi, 'def')

더 자세한 것은 정규식(Requral Expression)을 참고하도록 하자.

테스트:

자동 replace (포커스를 벗어나면 a 를 b 로)
수동 replace (뒤에 버튼을 누르면 a 를 b 로)
소스: (아래 부분을 클릭하고 Ctrl + A 를 누르면 깔끔하게 선택 완료) <TABLE cellpadding="3" cellspacing="1" border="1"> <TR> <TD>자동 replace (포커스를 벗어나면 a 를 b 로)</TD> <TD><INPUT TYPE="text" NAME="txtAuto" value="ab aaaa bbab aa" onFocus="this.select();" onBlur="this.value = this.value.replace(/a/gi, 'b');"></TD> </TR> <TR> <TD>수동 replace (뒤에 버튼을 누르면 a 를 b 로)</TD> <TD><INPUT TYPE="text" NAME="txtManual" value="ab aaaa bbb aa" onFocus="this.select();"><INPUT TYPE="button" VALUE="변환" ONCLICK="txtManual.value = txtManual.value.replace(/a/gi, 'b');"></TD> </TR> </TABLE>

+ Recent posts