javascript replace replaceAll . 점 dot 문자바꾸기
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, ' ');
점(.) 앞에 \ 역슬래쉬 하나를 추가해주면 원하는 의도대로 동작한다.