2012-02-27 80 views
0

我想要在Java腳本中進行手機號碼驗證的正則表達式,它可能是10位數字到20位數字,並用逗號分開手機號碼的正則表達式?

ex; 用戶可以單獨輸入10位電話號碼(1234567890),也可以輸入10至20位電話號碼(123456789),兩個號碼之間用逗號分隔(1234567890,123456789043543,1234567890345),但如果一旦輸入一個號碼,應該是10位至20位,它可能與「+91」或「0」這樣 感謝開始提前

回答

0

此正則表達式應該工作。

/^(\+91\d{8,18}|0\d{0,19})(,\+91\d{8,18}|,0\d{0,19})*$/g 

\+91\d{8,18}意味着+91開始後,可以有更多的8-18位。由於開頭已經有2位數字(91),所以總位數將會是10-20。

0 \ d {0,19}也具有與上述相同的含義。

如果你想匹配的字符串像123456789043543,1234567890345等不與任何+910那麼簡單/^+\d{10-20}(,\d{10-20})*$/g會做開始。

+0

我試過這個var num =「+ 911678686786711,112345678」; ..但它只驗證第一個數字。在逗號之後它不是,上面的值是錯誤的,但是你給出的exp沒有顯示error.it接受那 – user2587222 2012-02-27 15:47:52

+0

你沒有正確指定它,所以我給你展示了2個正則表達式。你也沒有告訴數字是否被','分開,否則它會包含它。發佈一些有效的輸入數字。然後我們可以多瞭解一點。另請閱讀我答案的最後一段。您指定了'123456789043543,1234567890345',但沒有指定它們是有效的或無效的。 – 2012-02-27 16:53:51

+0

我這樣試過../^(\+91 \ d {8,18} | 0 \ d {9,18})((,\ + 91 \ d {8,18})|(,0 \ d {9,18}))* $/g ...它適合我的代碼。謝謝很多shiplu – user2587222 2012-02-28 06:26:30