2010-08-13 70 views
0

我在我的应用我使用下面的正则表达式模式匹配。差异的JavaScript之间的两个正则表达式中

原始图案:

/(\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后去除逗号,而匹配,上面给出的情况下产生的任何问题。

回答

1

{2}意味着匹配如果它出现正好2倍,和{2,}装置2倍以上。根据使用情况,这可能或可能不重要。

例如,如果您想验证字符串是否包含2个或更多\w+\.,那么逗号无所谓。但是,如果要替换那些2或别的东西更\w+\.,逗号会影响结果。

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

感谢肯尼您的信息帮助我很多 – pravin 2010-08-13 07:10:11

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的细节

相关问题