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