我只是在學習正則表達式,所以我可以在這個主題上使用一些關於驗證電話號碼的幫助。preg_match如何否定電話號碼中的前面的零?
我有一個電話輸入被分成一個選擇列表,國家代碼前加一個+符號。如果用戶忘記刪除電話號碼中的前一個零,則不符合E.164國際標準(然而,有少數國家是該規則的例外,即意大利,挪威等)。但大多數人需要省略有效國際電話號碼的零。
在我雖然有限的研究,我已經意識到,電話號碼格式在世界各地差異很大。這意味着驗證需要鬆散而不是嚴格,並允許破折號,空格,括號,圓點和正斜槓的任意組合作爲數字之間的分隔符。爲了符合E.164標準,分隔符將被替換爲空字符串,以給出如下示例結果:+44755222333
這是我迄今爲止嘗試驗證任何數字的嘗試。
preg_match('/^(?:[0-9][.\-\(\)\s]*)/$', $phonenumber);
你如何構成一個正則表達式來否定前述零即在字符串字符0或00的存在返回一個錯誤匹配,加上的靈活性,以驗證任何可能的電話號碼符號?
此致,爲什麼
P.S只是爲了檢查。 「無零」規則是否也適用於NANP號碼?我這樣問是因爲我認爲這裏的大多數人都熟悉這種電話號碼系統。
你要像一個號碼'044755222333'返回false不匹配或者你想第一個0或00 –
後的每一件事無零規則也適用於NAND編號 – jpiasetz
很高興知道。謝謝! – why