0

我尝试检测这样的文本: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

4

2 回答 2

2

哦!我创立了。\b不会“检测字符串的开头和结尾” 。它匹配单词边界。^ 是字符串的开头,$ 是字符串的结尾。

所以我改变了“/\bE[[\w]+,[\d]+,[\d]+]\;\b/i;” 到 "/^E[[\w]+,[\d]+,[\d]+]\;$/i;" 对于正确的常规。谢谢

于 2013-06-13T09:09:01.153 回答
1

http://www.regexplanet.com/advanced/javascript/index.html是尝试正则表达式的好工具。我不知道你为什么对结果感到惊讶,因为它们是正确的。

于 2013-06-13T09:07:17.660 回答