2010-08-13 97 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的細節

相關問題