我尝试检测这样的文字:E(id,x,y);
代码是:
var patt1= /\bE\[[\w]+,[\d]+,[\d]+\]\;\b/i;
document.write(patt1.test("E[id,1,2];"));
结果是:false
但是当我改变时
/\bE\[[\w]+,[\d]+,[\d]+\]\;\b/i;
到
/\bE\[[\w]+,[\d]+,[\d]+\]\;/i;
结果是:true
。但它也允许E[id,1,2];moretext
。
答案 0 :(得分:2)
哦!我成立了。 \ b 不会“检测字符串的开头和结尾”。它匹配单词边界。 ^是字符串的开头,$是字符串结尾。
所以我改变了“/ \ bE [[\ w] +,[\ d] +,[\ d] +] \; \ b / i;” to“/ ^ E [[\ w] +,[\ d] +,[\ d] +] \; $ / i;”适合正规的。感谢
答案 1 :(得分:1)
http://www.regexplanet.com/advanced/javascript/index.html是尝试正则表达式的好工具。我不知道为什么你对结果感到惊讶,因为它们是正确的。