我试图在php中验证电话号码。要求是(0d)dddddddd或0d dddddddd,其中d是0-9。这就是我现在所拥有的
if(!preg_match("/^0[0-9]{9}$/", $phone))
{
//wrong format
}
我尝试了几个类似的问题,但仍然无法理解正则表达式。 任何人都可以帮我修复正则表达式吗?
答案 0 :(得分:1)
您可以尝试以下代码,
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
答案 1 :(得分:0)
答案 2 :(得分:0)
^((\(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
}
答案 3 :(得分:0)
试试这个
if(!preg_match("^(?:\(0\d\)|0\d\s)\d{8}$", $phone))
{
//wrong format
}