1

我有一个变量,它只允许数字、破折号和括号,电话号码没有特定的长度,并且验证必须在 php 中完成,不允许使用 javascript,

编辑 只是想在正则表达式中也允许空格....

谢谢

4

1 回答 1

2

所以,我对这里的问题有点困惑,但我会试一试,希望它能让你到达你需要的地方。

这将允许任何包含指定字符的内容。(303)123-4567将被允许​​。一样32084248())(21324234--234242-23-(显然不是电话号码)

if( preg_match("/^[0-9() -]+$/", $number) {
    // Only numbers, parens and hypens allowed
}

如果你想让正则表达式更严格一点,我们可以限制为美式数字:

if( preg_match("/^\d{0,3}-?(?:\(\d{3}\)|\d{3})-?\d{3}-?\d{4}$/", $number) {
    // US Phone number
}

这将只允许带有可选国家代码的美式编号。请参阅此ReFiddle Link以获得更详尽的匹配号码列表,这将允许。

于 2012-06-23T08:12:07.960 回答