2017-10-21 62 views
0
$my_string = '88888805'; 
echo preg_replace("/(^.|.$)(*SKIP)(*F)|(.)/","*",$,my_string); 

这说明像这样8 ****** 5 第一和最后一个数字,但我该怎么让这个数字是这样888888 **。 (最后2位数字隐藏)的PHP的preg_replace数字字符

谢谢!

From this: 8******5 
To: 888888** 

回答

2

我不知道你是否曾在这个正则表达式模式下做一些独特的事情。但是,我会为您提供一个适合您的问题而不使用当前模式的通用方法。

$my_string = '88888805'; 
echo preg_replace("/([0-9]+)[0-9]{2}$/","$1**",$,my_string); 

说明:

([0-9]+)将匹配所有的数字,这可能是与\d+被替换,这是因为我们要在结果使用它来捕获括号内。

[0-9]{2}将匹配最后2位数字,它可以替换为\d{2},因为我们不想将它们包含在结果中,所以它不在括号内。在此之后的$是指示测试结束,反正它是可选的。

结果:

Input: 88888805 
Output: 888888** 
0
echo preg_replace("/(.{2}$)(*SKIP)(*F)|(.)/","*",$my_string); 

如果UNI端口分配,你可能想这样做。基本上说,如果它的最后两个字符不匹配,否则匹配。