前言

在php前端开发中,我们有时候需要将一个手机号码中的某一些位数用星号代替,这样可以保护客户的基本信息。本文章向大家介绍php手机号中间四位用星号*代替显示的实现方法,需要的码农可以参考一下。

方法一:substr字符串截取法

通过substr函数截取手机号码的前几位和后几位,中间用星号填充:

$mobile = '13912345678';
$newMobile1 = substr($mobile, 0, 5).'****'.substr($mobile, 9);
echo $newMobile1;
// 输出: 13912****5678

这种方法简单直接,substr($mobile, 0, 5)截取前5位,substr($mobile, 9)截取从第9位开始到末尾的部分,中间用4个星号填充。

方法二:substr_replace替换法

使用substr_replace函数直接替换手机号码中间的字符:

$mobile = '13912345678';
$newMobile2 = substr_replace($mobile, '****', 5, 4);
echo $newMobile2;
// 输出: 13912****5678

substr_replace函数参数说明:第一个参数是原字符串,第二个参数是替换字符串,第三个参数是开始替换的位置,第四个参数是替换的长度。这里从第5位开始,替换4个字符为星号。

方法三:preg_replace正则替换法

使用正则表达式匹配手机号格式,并用星号替换中间四位:

$mobile = '13912345678';
$newMobile3 = preg_replace('/(d{5})d{4}(d{2})/', '$1****$2', $mobile);
echo $newMobile3;
// 输出: 13912****5678

正则表达式说明:

  • (d{5}) - 匹配前5位数字并捕获
  • d{4} - 匹配中间4位数字(待替换部分)
  • (d{2}) - 匹配最后2位数字并捕获
  • $1****$2 - 替换为:前5位 + 4个星号 + 后2位

三种方法对比

方法函数优点缺点
字符串截取法substr()简单易懂,性能较好代码稍长
子串替换法substr_replace()代码简洁,一步完成需要记住参数含义
正则替换法preg_replace()灵活强大,可扩展正则稍复杂,性能略低

总结

以上三种方法都可以实现手机号中间四位用星号显示的效果。对于简单的需求,推荐使用substr_replace()方法,代码最简洁。如果需要更灵活的匹配规则(如固定位数、自定义显示位数等),正则表达式方法会更加方便。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部