正则表达式 - 简单的电话号码验证

时间:2016-03-20 17:34:36

标签: php regex validation phone-number

我需要使用正则表达式检查/替换表单字段中的电话号码,它应该非常简单。 我找不到这种格式的解决方案:

“地点编号”
所以:“0521 123456789”

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

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

2 个答案:

答案 0 :(得分:3)

您可以使用以下RegEx:

^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

答案 1 :(得分:2)

PHP代码:

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

查看 demo on ideone.com 要允许此模式(即没有其他字符),您可以锚定到开头和结尾:

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