2012-10-02 3 views
1

이 코드가 정상적으로 작동하지 않는 이유는 무엇입니까?Javascript replace 함수가 regexp와 작동하지 않습니다.

var temp = "@TEMP (A1)" 
var text = "1st Oct @TEMP (A1)" 
text = text.replace(new RegExp(temp, "gi"), ""); 
console.log(text); //I get same text even though I used replace instead of 1st Oct?? 

여기서 어떤 문제가 발생하는지 설명 할 수 있습니까?

var temp = "@TEMP \\(A1\\)" 

답변

6

가 직접 정규 표현식으로 사용되는 temp의 특수 문자를 인용해야합니다 탈출하지 않는 한 정규 표현식에서

4

괄호는 특별한 의미를 가지고있다. () 문자는 '('및 ')와 실제로 일치하지 않는 패턴으로 문자를 그룹화합니다.

1
var temp = "@TEMP \\(A1\\)"; 
var text = "1st Oct @TEMP (A1)"; 
text = text.replace(new RegExp(temp, "gi"), ""); 
console.log(text); 

곱슬 괄호는 정규 표현식의 특수 문자, 당신은 그것을 탈출 백 슬래시를 사용해야합니다.

관련 문제