javascript 에서 어떤 대상 문자를 원하는 문자로 변환할때는 replace 함수를 이용한다.


* 기본 사용법

대상문자열.replace('대상문자', '바꿀문자')

- return 바뀐문자열

위의 형식으로 사용한다.


var str = "abcd";

str.replace('a', 'x');                    "a를 x로 바꿔야지!!"

수행결과 ---> xbcd


혹은

var changedStr = str.replace('a','x');

으로 다른 변수에 넣으면서 사용!


* 문자열내 전체를 바꾸고 싶을때

str = "abcd abcd abcd";

여기서

str.replace('a', 'x');

를 다시 수행하면

결과는 xbcd abcd abcd 

즉, 제일 처음 것... 한번만 변환 하고 끝난다.

문자열내 전체를 바꾸고 싶다면?


replace(/대상문자/옵션, '바꿀문자')

str.replace(/a/g, 'x');          "문자열내 a들을 모두 x로 바꿔야지!!"

이런식으로 사용한다. 

수행결과 ---->  xbcd xbcd xbcd

replace(/대상문자/g, '바꿀문자')

슬래쉬를 활용하여..


여기서 g라고 적힌 부분은 옵션으로 

g(global) 는 모든 문자들을 검색하여 변환하겠다!!

i(ignoreCase) 는 대소문자 구분 없이 다 변환하겠다!!

의 의미로

str.replace(/a/gi, 'x');    "문자열내 a들을 모두 x로 바꾸겠다!! i옵션 넣었으니 A까지!" 

식으로도 사용한다. 


* 문자열내 점 . dot 바꾸기!

var str = "abc.def.ghi";

문자열내 점이 들어있을때 모든 점을 띄어쓰기로 바꾸겠다는 의미로

str.replace(/./gi, ' ');         를 수행해버리면.... 모든 문자들이 공백이 되어버린다.

점(.)을 바꾸고 싶은데 replace 수행시 .은 모든 문자로 인식해버려서 다 변환해버린다.

이때 정말 점을 바꾸고 싶다면

str.replace(/\./gi, ' ');         

점(.) 앞에 \ 역슬래쉬 하나를 추가해주면 원하는 의도대로 동작한다.

abc def ghi


Posted by 초올싹
,