正则表达式 - 简单的 phone 数字验证

Regex - simple phone number validation

我需要用正则表达式检查/替换表单字段中的 Phone 数字,这应该很简单。 我找不到这种格式的解决方案:

"place number"
所以:“0521 123456789”

其他任何方法都不起作用。没有特殊字符,没有国家等
只是“0521 123456789”

如果有人能提供解决方案那就太好了,因为我不是正则表达式专家(和 PHP)。

您可以使用以下正则表达式:

^0[1-9]\d{2}\s\d{9}$

这将完全匹配它

Live Demo on RegExr


工作原理:

^        # String Starts with ...
0        # First Digit is 0
[1-9]    # Second Digit is from 1 to 9 (i.e. NOT 0)
\d{2}    # 2 More Digits
\s       # Whitespace (use a [Space] character instead to only allow spaces, and not [Tab]s)
\d{9}    # Digit 9 times exactly (123456789)
$        # ... String Ends with

PHP代码:

$regex = '~\d{4}\h\d{9}~';
$str = '0521 123456789';
preg_match($regex, $str, $match);

看到一个demo on ideone.com.
要允许 这种模式(即没有其他字符),您可以 anchor 它到开头和结尾:

$regex = '~^\d{4}\h\d{9}$~';