我一直在尝试将电话号码验证为 5555555555 格式。我已成功删除所有特殊字符的电话号码,但如果输入的电话号码为+15555555555,则该号码仍然包含' 1'在数字的开头。无论如何要删除+1和特殊字符吗?
我目前的正则表达式为preg_replace('/^1|\D/', "", +15555555555);
。
任何帮助将不胜感激!
答案 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。