我需要處理國際代碼的電話號碼,但我不需要手機是一種特定的格式。我發現了很多關於如何將它應用於美國,西班牙等的例子......但沒有一個只允許輸入00或+的數字,允許使用空格和/或破折號,或者沒有空格或破折號。國際電話號碼驗證與RegEx
我得在一個asp.net MVC 5應用程序上的電話號碼領域的應用下面的表達式:
[RegularExpression(@"^\+?\d*$", ErrorMessage = "Not a valid Telephone number.")]
在它的立場,它處理以下情況:
+19999999999
0019999999999
這是好的,但它不允許空格和/或破折號,所以這樣的數字:
+ 1 999 999 99 99
+32 999-999-99-99
+7 999 999-99-99
不被視爲有效。
如何包含空格和/或破折號。更具體地,是能夠確保:
- 僅存在1個空間或數字之間1個破折號
- 允許沒有空間或根本沒有破折號(當前場景)
- 確保僅存在1 +號使用
- 確保號碼長度至少爲10個字符,少於20個字符。
如果1.太複雜了,你能告訴我如何在沒有任何特定規則的情況下允許空格和/或破折號,所以一個數字如:-33-999 999 + 99-99,而完全錯誤仍然有效。
由於
^- \ d * - \ d * \ s \ d * \ + \ d * - \ d * $ regx for -33-999 999 + 99-99 – mlkptl35
感謝您指點我正確的方向和快速速成課程!我真的需要學習如何一勞永逸地使用RegEx。非常有用,但在同一時間完全痛苦! – Thierry
如果它可以幫助你檢查這個谷歌的公共庫解析,格式和驗證國際電話號碼。 https://github.com/googlei18n/libphonenumber – mlkptl35