即時通訊嘗試在php中驗證電話號碼。要求是(0d)dddddddd或0d dddddddd,其中d是0-9。這是我現在所擁有的特定電話號碼格式的PHP正則表達式
if(!preg_match("/^0[0-9]{9}$/", $phone))
{
//wrong format
}
我試過幾個類似的問題,但仍不能理解正則表達式。 任何人都可以幫我修復正則表達式嗎?
即時通訊嘗試在php中驗證電話號碼。要求是(0d)dddddddd或0d dddddddd,其中d是0-9。這是我現在所擁有的特定電話號碼格式的PHP正則表達式
if(!preg_match("/^0[0-9]{9}$/", $phone))
{
//wrong format
}
我試過幾個類似的問題,但仍不能理解正則表達式。 任何人都可以幫我修復正則表達式嗎?
你可以試試下面的代碼,
if(!preg_match("~^(?:0\d\s|\(0\d\))\d{8}$~", $phone))
{
//wrong format
}
說明:
^ the beginning of the string
(?: group, but do not capture:
0 '0'
\d digits (0-9)
\s whitespace
| OR
\( '('
0 '0'
\d digits (0-9)
\) ')'
) end of grouping
\d{8} digits (0-9) (8 times)
$ before an optional \n, and the end of the
string
感謝您的解釋,真正幫助那些仍然像我一樣學習的人。欣賞它。 – bisonsausage 2014-10-19 08:04:08
^((\(0\d\))|(0\d))\d{8}$
比賽
(05)12345678
05 12345678
看到的例子http://regex101.com/r/zN4jE4/1
if(!preg_match("/^((\(0\d\))|(0\d))\d{8}$/", $phone))
{
//wrong format
}
試試這個
if(!preg_match("^(?:\(0\d\)|0\d\s)\d{8}$", $phone))
{
//wrong format
}
你能否提供一些有效數字的例子 – nu11p01n73R 2014-10-19 07:34:29
當然可以。像(05)12345678或05 12345678 – bisonsausage 2014-10-19 07:41:42
「類似的東西」在討論正則表達式時不夠好。你必須儘可能精確。 – 2014-10-19 07:54:04