【发布时间】:2013-02-08 09:14:03
【问题描述】:
JavaScript: The Good Parts p41 包含以下正则表达式:
/&([^&;]+);/g
用于查找所有 HTML 实体,例如 >。如果有人使用 JSLint 验证此代码,它会报告
不安全的'^'
虽然严格来说这是正确的,但我仍然认为可以忽略它。还是不行?
【问题讨论】:
-
不应该是
/&([^&;]+?);/g吗? -
您需要
{1,10}或其他东西才能使您的正则表达式起作用 - 目前它不会匹配>(但会匹配&g;)。 -
@RichieHindle 不,_rausch 是对的。应该是惰性匹配。此外,问题与此无关。
-
@rausch,你是对的 - 差不多。我忘了一个'+'。 Crockford 书中的代码示例中有“+”。哦,有人刚刚编辑了我的帖子来解决这个问题,谢谢。
-
@SalmanA,我确实知道 JSLint 想告诉我什么。如果我必须重写正则表达式以避免'^',我基本上必须列出在 HTML 实体中实际找到的所有字符。在我看来这是不切实际的。
标签: javascript regex