2016-11-04 95 views
-2

我需要建立一個正則表達式來驗證所有類型的電話號碼的其中includes + () . -正則表達式來驗證所有的電話號碼

由於谷歌和堆棧溢出和我有一個正則表達式

/^[+]*[(]{0,1}[0-9]{1,3}[)]{0,1}[-\s\./0-9]*$/g 

驗證所有電話數字。

但是,雖然驗證+(123 456-7890上述正則表達式沒有按預期工作。 所以我修改上述正則表達式爲

/^\+?([(]{1}[0-9]{1,3}[)]{1}|[0-9]{1,3})([-\s0-9]*|[.\s0-9]*)\d+$/ 

它工作正常。

現在我需要進入連續-和點(.)

限制用戶所以我手動驗證該

if(HomePhone.indexOf("..") > -1 && HomePhone.indexOf("--") > -1) 
return false; 

誰能幫我用一個單一的正則表達式通過改進它來解決上述問題..?

由於提前

+0

您限制用戶不要輸入超過3個連續數字的方式,您可以對連字符和點進行設置,對嗎?想想看。 –

+0

我不給你投票。嘗試此鏈接http://stackoverflow.com/questions/22378736/regex-for-mobile-number-validation –

+0

@WasiAhmad用戶可以有空間,時間段和超時但不連續。他可以輸入連續號碼 –

回答

0

我相信下面的正則表達式將滿足您的所有需求。

正則表達式:^\+?(\([0-9]{3}\)|[0-9]{3})(-.)?[0-9]{3}(-.)?[0-9]{4}$

此正則表達式應該接受以下幾點:

(123) 456-7890 
+(123) 456-7890 
+(123)-456-7890 
123-456-7890 
123.456.7890 
1234567890 
+3163636363 
075-6354672 

您可以修改這句話來適應您的要求,如果需要的話。

0

使用匹配..--使用正則表達式/(\.\.+|\--+)/g

Demo Here

+0

感謝您的快速回復。正如我在帖子中提到的,我需要使用相同的正則表達式驗證多個字段,所以我刪除了g標誌。 我會試試這個 –

相關問題