<1>前言<2> <3>在php前端开发中,我们有时候需要将一个手机号码中的某一些位数用星号代替,这样可以保护客户的基本信息。本文章向大家介绍php手机号中间四位用星号*代替显示的实现方法,需要的码农可以参考一下。<4> <5>方法一:substr字符串截取法<6> <7>通过substr函数截取手机号码的前几位和后几位,中间用星号填充:<8> <9><10>$mobile = '13912345678'; $newMobile1 = substr($mobile, 0, 5).'****'.substr($mobile, 9); echo $newMobile1; // 输出: 13912****5678<11><12> <13>这种方法简单直接,substr($mobile, 0, 5)截取前5位,substr($mobile, 9)截取从第9位开始到末尾的部分,中间用4个星号填充。<14> <15>方法二:substr_replace替换法<16> <17>使用substr_replace函数直接替换手机号码中间的字符:<18> <19><20>$mobile = '13912345678'; $newMobile2 = substr_replace($mobile, '****', 5, 4); echo $newMobile2; // 输出: 13912****5678<21><22> <23>substr_replace函数参数说明:第一个参数是原字符串,第二个参数是替换字符串,第三个参数是开始替换的位置,第四个参数是替换的长度。这里从第5位开始,替换4个字符为星号。<24> <25>方法三:preg_replace正则替换法<26> <27>使用正则表达式匹配手机号格式,并用星号替换中间四位:<28> <29><30>$mobile = '13912345678'; $newMobile3 = preg_replace('/(d{5})d{4}(d{2})/', '$1****$2', $mobile); echo $newMobile3; // 输出: 13912****5678<31><32> <33>正则表达式说明:<34> <35> <36><37>(d{5})<38> - 匹配前5位数字并捕获<39> <40><41>d{4}<42> - 匹配中间4位数字(待替换部分)<43> <44><45>(d{2})<46> - 匹配最后2位数字并捕获<47> <48><49>$1****$2<50> - 替换为:前5位 + 4个星号 + 后2位<51> <52> <53>三种方法对比<54> <55> <56> <57> <58>方法<59><60>函数<61><62>优点<63><64>缺点<65> <66> <67> <68> <69><70>字符串截取法<71><72>substr()<73><74>简单易懂,性能较好<75><76>代码稍长<77><78> <79><80>子串替换法<81><82>substr_replace()<83><84>代码简洁,一步完成<85><86>需要记住参数含义<87><88> <89><90>正则替换法<91><92>preg_replace()<93><94>灵活强大,可扩展<95><96>正则稍复杂,性能略低<97><98> <99> <100> <101>总结<102> <103>以上三种方法都可以实现手机号中间四位用星号显示的效果。对于简单的需求,推荐使用substr_replace()方法,代码最简洁。如果需要更灵活的匹配规则(如固定位数、自定义显示位数等),正则表达式方法会更加方便。<104>

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部