티스토리 뷰

자바스트립트에서 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! 



댓글
댓글쓰기 폼