聘我网

新概念招聘3.0

PHP 替换 身份证 上的生日 变成******

vote up0vote downstar

我想替换身份证 中的生日 位 包括 15位身份证 和18 中的生日 都替换成 *****

帮帮忙 写个 谢谢了

 
你给下15位和18位的例子以及替换后需要的效果 - Shore 2010-03-25, 04:14
解决了 谢了 - 打不死的小强 2010-03-25, 22:40

1 个答复

vote up0vote downcheck

没有15位身份证,这里只好拿18位的作为例子。

假设身份证号已经提取出来了:

$str = '320219198510176271';
echo substr_replace($str, '****', 10 , 4);

输出:

3202191985****6271

而如果身份证并没有提取出来,混杂在一堆文字中:

function replace($matches)
{
    return substr_replace($matches[0], '****', 10 , 4);
}
$str = 'hello, my id number is 320219198510176271 ...';
echo preg_replace_callback('/(?<!\d)\d{18}(?!\d)/','replace',$str);

输出:

hello, my id number is 3202191985****6271 ...

其中用到了正则的look ahead以及look behind

链接

您的回答





不是您要找的问题? 浏览其他含有标签 的问题或者 自己问个.