PHP 正则表达式:电话号码国际格式,+

Die*_*ego 1 php regex preg-match

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

我认为这个简单的正则表达式可以做到这一点,但不知何故我一定错过了一些东西,因为它不接受电话号码:

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

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

fal*_*tru 5

附加?在后面\+使+可选。

[0-9]{6}$仅匹配 6 位数字。要匹配更多数字,您必须使用+isn't 代替{6}。如果您需要 6 位或更多数字,请使用{6,}.

尝试以下操作:

if (!preg_match('/^\+\d+$/', $phone)) 
    fail("Invalid phone number");
Run Code Online (Sandbox Code Playgroud)