为什么这个正则表达式可以作为var pattern = / ... /而不是var pattern = RegExp(“...”)?

时间:2010-02-15 18:24:14

标签: javascript regex

<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>

它与var pattern = /\bi\b/g;一样好用,但在使用RegExp("\bi\b","g")时则不行。为什么? (...提前谢谢你)

1 个答案:

答案 0 :(得分:5)

\是JavaScript字符串中的转义字符。它是也是正则表达式中的转义字符!由于您将字符串传递给the RegExp constructor,因此您必须转义转义字符...

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