正則表達式將匹配有效的國際電話號碼?在嘗試撥打電話號碼之前,我需要確定電話號碼是否有效。電話可以去世界任何地方。正則表達式將匹配有效的國際電話號碼?
3 回答

HUX布斯
TA貢獻1876條經驗 獲得超6個贊
\+(9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)\d{1,14}$
是否匹配通用國際電話號碼的正確格式。我用標準的國際訪問代碼標識符'+'替換了美國陸線中心國際訪問代碼011,使其成為強制性的。我還將國家號碼的最小值更改為至少一位數。
請注意,如果您以此格式在手機地址簿中輸入數字,無論您在何處旅行,都可以成功撥打地址簿中的任何號碼。對于陸線,請將plus替換為您要撥打的國家/地區的國際訪問代碼。
請注意,這并未考慮國家號碼計劃規則 - 具體而言,它允許在國家號碼計劃可能不允許的位置使用零和一些,并且還允許某些國家/地區(例如美國)的號碼長度大于國家號碼計劃。

冉冉說
TA貢獻1877條經驗 獲得超1個贊
這是進一步的優化。
\+(9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)\W*\d\W*\d\W*\d\W*\d\W*\d\W*\d\W*\d\W*\d\W*(\d{1,2})$
(i)允許有效的國際前綴
(ii)后跟9或10位數字,任何類型或位置的分隔符(最后兩位數之間除外)
這將匹配:
+ 1-234-567-8901
+ 61-234-567-89-01
+ 46-234 5678901
+1(234)56 89 901
+1(234)56-89 901
+46.234.567.8901
+1 / 234 /八千九百○一分之五百六十七
- 3 回答
- 0 關注
- 1354 瀏覽
添加回答
舉報
0/150
提交
取消