javascript中两个正则表达式模式的区别

时间:2010-08-13 06:08:01

标签: javascript regex

我的应用程序我正在使用正则表达式进行模式匹配。

原始图案:

/(\w+\.){2,}/ig

以上模式添加到一个数组中。由于此模式在2之后有逗号(,),因此在某些环境中创建问题。

正如我们在正则表达式中所知的那样:

 {n} - matches n times
 {n, m} - matches at least n times, but not more than m times

所以我在2之后删除了逗号,因为在上面的模式中,逗号后没有值。

删除逗号后

模式:

/(\w+\.){2}/ig

根据上述变化,我已经解决了我之前面临的环境问题。

所以在这里,我只想知道在匹配之后,在2之后删除逗号会产生任何问题,对于上面给出的情况。

2 个答案:

答案 0 :(得分:1)

{2}表示匹配,如果它恰好出现2次,{2,}表示2次或以上。根据用途,这可能也可能无关紧要。

例如,如果要验证字符串是否包含2个或更多\w+\.,则逗号无关紧要。但是,如果您想用其他内容替换那些2个或更多\w+\.,则逗号会影响结果。

'foo.bar.baz.'.replace(/(\w+\.){2}/ig, '~') == '~baz.'
'foo.bar.baz.'.replace(/(\w+\.){2,}/ig, '~') == '~'

答案 1 :(得分:1)

{2,}表示两个或更多。没有最大限制。 这样,{0,}与*相同,{1,}与+

相同

总结:

{n} match n times
{n,m} match at least n times, but not more than m times
{n,} match at least n times

有关详细信息,请参阅this