所以我正在创建一个简单的函数来屏蔽电话号码。我的电话号码有 9 位数字,我希望preg_replace它们带有给定的掩码,例如2-2-2-1-2or3-2-2-2等。
我试过这个:
$mask = explode('-', '3-2-2-2');
$pattern = '';
$replace = '';
foreach ($mask as $key => $value) {
if ($key == 0) {
$pattern = '/\(?(\d{' . $value . '})\)?[- ]';
$replace = '$' . ++$key . '-';
continue;
}
if ($key == count($mask) - 1) {
$pattern .= '?(\d{' . $value . '})/';
$replace .= '$' . ++$key;
break;
}
$pattern .= '?(\d{' . $value . '})[- ]';
$replace .= '$' . ++$key . '-';
}
return preg_replace($pattern, $replace, '902000810');
结果是902-00-08-10。有时会出错preg_replace(): No ending delimiter '/' found。我怎样才能将其重构为不出错?
30秒到达战场
森栏