프로그래밍/자바스크립트

[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!