2010-02-15 3 views
1
<script type="text/javascript"> 
var str="Jestem bardzo, bardzo zadowolony. Można powiedzieć, że jestem również uszczęśliwiony i uspokojony."; 

patt1=new RegExp("\bi\b", "g"); //<--- (to find the single word: "i") 

document.write(str.match(patt1)); 
</script> 

RegExp("\bi\b","g")을 사용할 때 var pattern = /\bi\b/g;으로 잘 작동하지만 그렇지 않습니다. 왜? (... 미리 감사드립니다)이 정규 표현식은 왜 var pattern =/.../var 패턴 = RegExp ("...")로 작동하지 않습니까?

답변

5

\는 JavaScript 문자열의 이스케이프 문자입니다. 정규 표현식의 이스케이프 문자입니다! 문자열을 the RegExp constructor에 전달할 때 이스케이프 문자를 이스케이프 처리해야합니다.

patt1=new RegExp("\\bi\\b", "g"); 
+0

Ahhh ...! 고맙습니다. – Sebastian

+0

@Sebastian :이 대답 옆의 큰 체크 표시가있는 개요를 클릭하여 동의하십시오. –

+0

PHP를 사용하여 JS를 작성하는 경우, 세 시간을 알아내는 데 3 시간을 소비 했으므로이 코드를 세 번 사용해야합니다. echo ' ' – Codemonkey