从 phone 号码中去除特殊字符和 +1

Strip special characters and +1 from phone number

我一直在尝试将 phone 个数字验证为 5555555555 格式。我已经成功地去除了所有特殊字符的 phone 数字,但是如果使用 +15555555555 输入 phone 数字,该数字的开头仍然包含“1”。有没有办法同时删除 +1 和特殊字符?

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

如有任何帮助,我们将不胜感激!

只需替换其中的+1

$phone_num = "+15555555555";

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

echo $phone_num;

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

你不需要为此使用正则表达式。

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

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

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

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

^\+1