Php 电话号码的预匹配功能
我无法将电话号码与此功能匹配Php 电话号码的预匹配功能,php,preg-match,Php,Preg Match,我无法将电话号码与此功能匹配 return (bool)preg_match( '/^[\-+]?[0-9]+$/', $num); 在去掉括号()和破折号-后,上述函数总是返回false,并保留+1234567890 我遗漏了什么仅北美电话号码,您可以使用此 ^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9
return (bool)preg_match( '/^[\-+]?[0-9]+$/', $num);
在去掉括号()
和破折号-
后,上述函数总是返回false,并保留+1234567890
我遗漏了什么仅北美电话号码,您可以使用此
^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$
在此处测试:
输出:
1 0 1
字符串中可能有一些空格。试用
@史密斯:你的正则表达式还可以。您的$num可能有问题,请看这里:我检查过了,没有空格
1 0 1
return (bool)preg_match( '/^[\-+]?[0-9]+$/', trim($num));