프로그래밍/자바스크립트
[JavaScript] 특정 문자 모두 바꾸기 (replaceAll)
젠트
2014. 11. 3. 23:14
자바스트립트에서 replace 메서드를 사용하면 첫 번째 문자만 치환이 되고 작동이 멈춘다.
String 클래스에 replaceAll 메서드를 추가하여 쉽게 문자를 치환 할 수 있다.
□ 방법 1. String prototype 메서드 추가
//replaceAll prototype 선언
String.prototype.replaceAll = function(org, dest) {
return this.split(org).join(dest);
}
//replaceAll 사용
var str = "Hello World";
str = str.replaceAll("o","*");
alert(str);
설명 :
str = str.split("o");
출력 : ["Hell", " W", "rld"] //해당 문자로 배열이 만들어진다.
str = str.join("*");
출력 : Hell* W*rld //배열을 해당 문자로 합친다.
□ 방법 2. 정규식 사용
var str = "Hello World";
str = str.replace(/o/g,"*");
alert(str);
설명 :
replace(/o/g,"*") : o를 *로 전체 치환한다.
replace(/o/gi,"*") : o를 *로 대/소문자 구분 없이 전체 치환한다.
g : 발생할 모든 pattern에 대한 전역 검색
i : 대/소문자 구분 안함
정규식에서 사용하는 특수문자( . ^ ( ) )를 치환할 때는 escape(\) 문자를 붙여 주어야 한다.
str = "Hello World.";
str = str.replace(/\./, "!");
출력 : Hello World!