Regex PHP:电话号码国际格式&x2B;

Regex PHP:电话号码国际格式&x2B;,php,regex,preg-match,Php,Regex,Preg Match,用户应该输入国际格式的电话号码,它应该始终以a+开头,并且没有任何特殊字符,例如+3162503277 我以为这个简单的正则表达式就可以了,但不知怎么的,我肯定错过了什么,因为它不接受电话号码: if (!preg_match('/^\+?[0-9]{6}$/i', $phone)) fail("Invalid phone number"); 检查数字是否以+开头,且仅包含数字的方法是什么?在\+之后添加?使+成为可选的 [0-9]{6}$只匹配6位数字。要匹配更多的数字,必须使用+

用户应该输入国际格式的电话号码,它应该始终以a+开头,并且没有任何特殊字符,例如+3162503277

我以为这个简单的正则表达式就可以了,但不知怎么的,我肯定错过了什么,因为它不接受电话号码:

if (!preg_match('/^\+?[0-9]{6}$/i', $phone)) 
    fail("Invalid phone number");

检查数字是否以+开头,且仅包含数字的方法是什么?

\+
之后添加
使
+
成为可选的

[0-9]{6}$
只匹配6位数字。要匹配更多的数字,必须使用
+
isntead of
{6}
。 如果需要6位或更多数字,请使用
{6,}

请尝试以下操作:

if (!preg_match('/^\+\d+$/', $phone)) 
    fail("Invalid phone number");

\+
之后添加
使
+
成为可选的

[0-9]{6}$
只匹配6位数字。要匹配更多的数字,必须使用
+
isntead of
{6}
。 如果需要6位或更多数字,请使用
{6,}

请尝试以下操作:

if (!preg_match('/^\+\d+$/', $phone)) 
    fail("Invalid phone number");

你完全正确,但我想澄清一点
{6}$
表示后面没有任何内容的六位数字。如果“$”丢失,他的正则表达式仍然匹配316250。你完全正确,但我想帮助澄清一点
{6}$
表示后面没有任何内容的六位数字。如果“$”丢失,他的正则表达式仍将匹配316250