从电话号码中删除特殊字符和+1

时间:2017-09-21 14:37:30

标签: php regex phone-number

我一直在尝试将电话号码验证为 5555555555 格式。我已成功删除所有特殊字符的电话号码,但如果输入的电话号码为+15555555555,则该号码仍然包含' 1'在数字的开头。无论如何要删除+1和特殊字符吗?

我目前的正则表达式为preg_replace('/^1|\D/', "", +15555555555);

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:3)

您不需要正则表达式。

str_replace('+1', '', $string)

会做到的。不过,为了解释您的正则表达式目前失败的原因,您的字符串不会以1开头,而是以+1开头,因此^1不匹配。

当前使用的演示:https://regex101.com/r/kwwp1r/1/

演示可能的正则表达式解决方案:https://regex101.com/r/kwwp1r/2/

^\+1

答案 1 :(得分:1)

只需将+1替换为

$phone_num = "+15555555555";

$phone_num = preg_replace('/\+1/','',$phone_num);

echo $phone_num;

或者您可以使用str_replace(' + 1','',$ phone_num),或者。我总是习惯使用preg_replace。