簡體   English   中英

電話號碼的12位正則表達式

[英]12 digit Regex for Phone number

我試圖獲取一個正則表達式,用於正好為12位數字的電話號碼,格式為:+ ############。

我嘗試使用的代碼是([+]?)\\d{12}(\\d{2})?$但是沒有運氣。

請幫忙

此模式將與加號后的12位數字完全匹配:

/^\+\d{12}$/

您尾隨的可選內容(/d{2})? 組件在您的模式中做什么?


這是沒有regex的相同功能:

$phone='+012345678912';
if($phone[0]=='+' && strlen($phone)==13 && is_numeric(substr($phone,1))){
    echo 'valid';
}else{
    echo 'invalid';
}
// displays: valid

嘗試這個:

^\+\d{12}(\d{2})?$

您需要轉義加號

Regex101演示

我們是否需要捕獲某些數字/序列,或者您只是使用該格式驗證其數字?

每當我不確定regex時,都會使用此在線工具regex101 它會在右側准確顯示您正在捕獲/檢查的內容,這非常有用。 根據您的用例,我看不到此正則表達式如何工作,請提供示例。 除此以外:

  1. 您只捕獲了前12個字母后的+號和2位數字。

  2. 您錨定到字符串的末尾而不是開頭
  3. +和2個額外的數字都是可選的,但您想精確地獲得+ ############?

建議您使用\\+(\\d{12})並避免使用不需要的錨點和捕獲組。

如果要支持三個數字之間的可選空格,請改用此正則表達式

^(\+)(\d{3}\s?){4}(\d{2})?$

\\s空格字符,而? 表示可選

https://regex101.com/r/nX5XnH/3 (演示)

+012 345 678 912 (ok)
+012345 678 912 (ok)
+012 345678912 (ok)
+01234567891244 (ok)
012345678913 (no mach - missing plus sign)

暫無
暫無

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

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