php方式隐藏手机中间4位三种方式
$mobile = '18812345678';
#最直接,掐头去尾,隐藏中间;从第0位开始取3位,中间4位隐藏,从第7位开始取4位。
echo substr($mobile,0,3).'****'.substr($mobile,7,4);
#从第3位开始取4位替换
echo substr_replace($mobile,'****',3,4);
#正则替换
echo preg_replace('/(1[0-9]{2})([0-9]{4})([0-9]{4})/i','$1****$3',$mobile);
#正则
#$0|$1|$2|$3对应 18812345678|188|1234|5678
echo preg_replace('/(1[0-9]{2})([0-9]{4})([0-9]{4})/','$0|$1|$2|$3',$mobile);
mysql方式隐藏手机中间4位
#手机号左取3位,右取4位,中间用*代替然后拼接一起
SELECT CONCAT(LEFT('18812345678',3),'****',RIGHT('18812345678',4)) AS mobile
#mysql从1开始而非从0
SELECT CONCAT(SUBSTRING('18812345678',1,3),'****',SUBSTRING('18812345678',7,4)) AS mobile
#replace(原字符串,要替换的字符串,替换后的字符串),前提要知道要替换的字符串
select replace('18812345678','1234','****') AS mobile
#insert(原字符串,从第几位,取几位,替换成什么)
SELECT INSERT('18812345678',4,4,'****') AS mobile
网友评论