php - 从php中的电话号码中修剪国家代码

标签 php regex

我将获得国家代码 $countryCode 和电话号码 $phone_no。电话号码开头会有国家代码,所以我必须从 $phone_no 中删除国家代码,并获得不附加任何代码的普通电话号码。

例如,如果国家/地区是印度尼西亚,我将得到:

$country_code = '62';
$phone_no = '+62509758151';
// need to  get 509758151

目前我正在尝试使用正则表达式和修剪函数

$result = ltrim( preg_replace("/[^0-9]+/", "",$phone_no) , $country_code);
// $result is 509758151

在这种情况下有效,但当电话号码以 ex 的国家代码中提到的数字开头时失败。 $phone_no = '+62609758151';

$result = ltrim( preg_replace("/[^0-9]+/", "",$phone_no) , $country_code);
// $result is 09758151 which is incorrect

更不用说对于 +62629758151 这样的小案例它也会失败

请提出一些建议。我知道基于字符串的解决方案,如 substr() 等,但我正在寻找一些基于正则表达式的解决方案

最佳答案

用符号 + 和国家代码更改字符串的开头

$result = preg_replace("/^\+?{$country_code}/", '',$phone_no);

demo

关于php - 从php中的电话号码中修剪国家代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47988501/

相关文章:

php - PHP 中的 undefined variable 错误,代码逻辑

regex - R 如何处理正则表达式中的特殊字符?

java - 跳过某些字符之间的正则表达式匹配

php - 创建javascript函数来销毁php session

php - 如何在一行中获取两个 select 语句的结果?

javascript - Target=_blank 在 mozilla 和 IE 中不起作用

c# - ASP.NET 正则表达式 -validationExpression

Ruby:从字符串生成新的正则表达式

javascript - 正则表达式过滤掉除特定日期之外的所有内容

PHP - Fat Free Framework - 子文件夹中的命名 URL 路由 - 404