JavaScript에서 String.replaceAll()
메소드를 만들고 싶은데 정규식을 사용하는 것이 가장 깔끔한 방법이라고 생각합니다. 그러나 정규식에 변수를 전달하는 방법을 모르겠습니다. "B"
의 모든 인스턴스를 "A"
로 바꾸면 이미 이 작업을 수행할 수 있습니다.
"ABABAB".replace(/B/g, "A");
하지만 저는 다음과 같은 작업을 하고 싶습니다.
String.prototype.replaceAll = function(replaceThis, withThis) { this.replace(/replaceThis/g, withThis); };
하지만 이것은 "replaceThis"
텍스트만 대체할 것 같습니다... 그렇다면 이 변수를 정규식 문자열에 어떻게 전달합니까?
Eric Wendelin이 언급했듯이 다음과 같이 할 수 있습니다.
으아아아이것은
으아아아“正则表达式匹配。”
。但是,如果 str1 是"."
,则会失败。您期望结果为“模式匹配正则表达式”
,用“正则表达式”替换句点
을 생산하지만 결과는...
으아아아"."
는 문자열이지만 RegExp 생성자에서는 여전히 정규 표현식으로 해석되어 문자열의 모든 문자를 나타내는 개행 문자가 아닌 문자를 나타내기 때문입니다. 이를 위해 다음 기능이 유용할 수 있습니다:그러면 이렇게 할 수 있습니다:
으아아아생산
“模式匹配正则表达式”
.새로운RegExp개체를 생성할 수 있습니다:
으아악이 방법으로 정규식 개체를 동적으로 만들 수 있습니다. 그러면 다음을 수행하게 됩니다:
으아악