JS 문자열에는 replacement() 메서드가 있습니다. 그러나 이 방법은 일치하는 첫 번째 문자열만 대체합니다. 예:
<HTML> <HEAD> <TITLE> New Document </TITLE> </HEAD> <BODY> <script> var str = "wordwordwordword"; var strNew = str.replace("word","Excel"); alert(strNew); </script> </BODY> </HTML>
모두 교체하려는 경우 JS에서는 교체와 같은 메소드를 제공하지 않습니다. 일반 테이블을 사용하면 바꾸기 효과를 얻을 수 있습니다.
str.replace(/word/g,"Excel")
g는 전역 일치를 수행한다는 의미입니다(첫 번째 일치 항목을 찾은 후 중지하는 대신 모든 일치 항목 찾기).
<HEAD> <TITLE> New Document </TITLE> <script> function replaceAll(str) { if(str!=null) str = str.replace(/word/g,"Excel") return str; } </script> </HEAD> <BODY> <script> var str = "wordwordwordword"; var strNew = str.replace("word","Excel"); strNew = replaceAll(str); alert(strNew); </script> </BODY> </HTML>
위의 작성 방법도 비슷한 작성 방법이 있습니다.
str.replace(new RegExp("word","gm"),"Excel")
g는 전역 일치를 수행합니다(첫 번째 일치를 찾은 후 중지하는 대신 모든 일치를 찾습니다).
m은 여러 줄 일치를 수행합니다.
또한 Stirng 객체의 프로토타입 메소드를 추가할 수도 있습니다.
String.prototype.replaceAll = function(s1,s2){ return this.replace(new RegExp(s1,"gm"),s2); }
이 방법으로 교체 메소드를 사용하는 것처럼 교체를 사용할 수 있습니다
str.replaceAll("word","Excel");
요약하자면 세 가지 방법이 있습니다
1. str.replace(/oldString/g,newString)
2. str.replace(new RegExp(oldString,"gm"),newString)
3. 문자열 객체 프로토타입 메소드를 추가합니다.