2017-08-30 66 views
1

驗證的國際電話號碼,我想使用PHP的preg_match()函數以下規則來驗證一個給定的國際電話號碼: - 只允許數字,沒有特殊字符和空格PHP的preg_match()通過滿足特定條件的

  • 電話號碼必須與 '00' 總是起始未+

  • 電話號碼長度應不超過11​​個符號

到目前爲止,我有這個,檢查字符串的開頭:

preg_match("~^00\d+$~", $_POST['phone']) 

,但如果我通過:00014568978945它會接受它是正確的,因爲它會檢查到了分鐘「00」,但第三個「0」,使手機無效..

如何看起來像完整的preg_match()條件來檢查上述要求?預先感謝您的時間!

+1

嘗試'〜^ 00 [1-9] \ d {8,} $〜D':以兩個'0'開始,然後是一個非零數字,然後是任意8個或更多數字。 –

+0

謝謝Wiktor,what \ d {8,}的意思是? – thecore7

+0

* 8或更多數字* –

回答

2

我建議

~^00[1-9]\d{8,}$~D 

regex demo

詳細

  • ^00 - 啓動具有兩個0 s,則
  • [1-9] - 非零位,然後
  • \d{8,} - 任何8首或更多個數字
  • $ - 字符串的結尾。

既然你驗證,我還包括DPCRE_DOLLAR_ENDONLY修改,迫使$錨字符串的非常末總是匹配。

+1

謝謝Wiktor,似乎工作,我會在7分鐘內接受它。 – thecore7