簡體   English   中英

正則表達式以驗證電話號碼

[英]regex to validate phone number

幫我寫以下條件的正則表達式

  1. 數字可以以+開頭
  2. 數字可以包含-或。 但不是()和/
  3. 數字可以以0開頭
  4. 字符串中的最小數字應為9位數字(不包括擴展名和以+開頭的數字)
  5. 電話號碼字段中的最大電話號碼不能超過14,但+
  6. 如果字符串包含ex / ext / x,則后面的數字不應超過5個字符(通常為4個)

以上應滿足以下示例

0-1234-123456
+91-1234-56789012
+91-1234-56789012 x1234
+91-1234-56789012 ex1234
+91-1234-56789012 ext12345
+91-1234-56789012x1234
+91-1234-56789012ex1234
+91-1234-56789012ext12345
91-1234-56789012
91-1234-56789012 x1234
91-1234-56789012 ex1234
91-1234-56789012 ext12345
91-1234-56789012x1234
91-1234-56789012ex1234
91-1234-56789012ext12345
91123456789012
91123456789012 x1234
91123456789012 ex1234
91123456789012 ext12345
91123456789012x1234
91123456789012ex1234
91123456789012ext12345
91.1234.56789012
91.1234.56789012 x1234
91.1234.56789012 ex1234
91.12345.6789012 ext12345
91.12345.6789012x1234
91.12345.6789012ex1234
91.12345.6789012ext12345
1-234-567-8901
1-234-567-8901 x1234
1-234-567-8901 ext1234
1 234 567-8901
1.234.567.8901
12345678901

我發現在線鏈接很少,其中之一是http://ericholmes.ca/php-phone-number-validation-revisited/

並且在stackoverflow上

用於電話號碼驗證的綜合正則表達式

^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$

不適用於上述多種情況

^\+?(\d[.\- ]*){9,14}(e?xt?\d{1,5})?$

說明;

  • ^斷言字符串的開始
  • \\+? 匹配可選的加號
  • (\\d[.\\- ]*){9,14}介於9到14個數字之間,可能由空格,點或破折號分隔。
  • (e?xt?\\d{1,5})? 可選地,ax可能以e開頭或以t開頭。 字母后面總是1到5個數字。
  • $字符串結尾

可以做到這一點,但要取決於您使用的是哪種編程語言(我們始終需要使用正則表達式知道這一點,因此,如果這對您不起作用,請使用所使用的語言進行回復。我已經在PHP5中對其進行了測試。)

您的條件5(電話號碼中最多14個字符)似乎是錯誤的,因為如果您的幾個示例包含點或連字符,則它們包含16個字符。 無論如何,這不會檢查整個物件的總長度,因為它會檢查另一個長度。 它需要第二個正則表達式,或者更好的是,事先檢查字符串長度(例如,在PHP中通過調用strlen)。

您可能需要在分機號中留一個空格,例如ext 1234;。 如果是這樣,請在適當的位置添加\\ s *。

我希望這有幫助。

^\+?\d[\d-\.\s]{8,15}\s?((ext|ex|x)\d{3,5})?$

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM