>我有一个简单的脚本来格式化号码(在拨号代码后删除0
(
$dialingCode = '971';
$mobileNo = '9710521666038';
// Remove 0 after dialingCode
echo preg_replace('/^(' . $dialingCode .')(.*?)/', $dialingCode . "$2", $mobileNo);
但它正在返回9710521666038
.
预期输出为971521666038
您不需要捕获任何内容:
preg_replace('/^' . $dialingCode . 'K0*/', '', $mobileNo);
现场演示
您可以使用preg_match并使用0*
来匹配零个或多个零。
然后内爆两个捕获以获取电话号码。
$mobileNo = '9710521666038';
Preg_match("/^(971)0*(d+)/", $mobileNo, $match);
Echo implode("", array_slice($match,1));
https://3v4l.org/5AmCR
可以在捕获组之外使用0?
:
$dialingCode = '971';
$mobileNo = '9710521666038';
// Remove 0 after dialingCode
echo preg_replace('/^(971)0?(.*?)/', '971' . "$2", $mobileNo);
输出:
971521666038