从电话号码中删除特殊字符和+1
问题描述:
我一直在尝试验证电话号码的格式为。我已成功删除所有特殊字符的电话号码,但如果输入的电话号码是+15555555555,则该号码在号码的开始处仍包含“1”。无论如何删除+1和特殊字符?从电话号码中删除特殊字符和+1
我目前的正则表达式是preg_replace('/^1|\D/', "", +15555555555);
。
任何帮助,将不胜感激!
答
您不需要正则表达式。
str_replace('+1', '', $string)
会做到这一点。但要解释为什么您的正则表达式当前失败,您的字符串不会以1
开头,它始于+1
,因此^1
不匹配。
演示当前使用的:https://regex101.com/r/kwwp1r/1/
一个可能的正则表达式溶液的演示:https://regex101.com/r/kwwp1r/2/
^\+1
答
只需更换+1从中
$phone_num = "+15555555555";
$phone_num = preg_replace('/\+1/','',$phone_num);
echo $phone_num;
或者你可以使用str_replace函数( '+ 1', '',$ PHONE_NUM),或。我总是习惯使用preg_replace。
'str_replace函数( '+ 1', '',$数);'---,但是,从另一方面+ {countrycode} {number}格式是国际电信联盟的标准化建议 - - [E.164](https://en.wikipedia.org/wiki/E.164)标准,因此可能保留它? –
好吧,为了完整性,我想保留数字10位。尽管我可能会这样做。感谢您的反馈! – ch0chi