屏蔽电话号码中间数字这个我们在一些购物网站常见到的手法了,下面我利用正则表达式来实现,具体原理我也不说多了大家都知道的,这里直接给例子.
函数代码如下:
- function hidtel($phone){
- $IsWhat = preg_match('/(0[0-9]{2,3}[-]?[2-9][0-9]{6,7}[-]?[0-9]?)/i',$phone); //固定电话
- if($IsWhat == 1){
- return preg_replace('/(0[0-9]{2,3}[-]?[2-9])[0-9]{3,4}([0-9]{3}[-]?[0-9]?)/i','$1****$2',$phone);
- }else{
- return preg_replace('/(1[358]{1}[0-9])[0-9]{4}([0-9]{4})/i','$1****$2',$phone);
- }
- }
- //示例:
- $phonenum = "13966778888";
- echo hidtel($phonenum);
- //最后输出:139****8888
例子L
1、屏蔽手机号码中间段,代码如下:
preg_replace('/(1[358]{1}[0-9])[0-9]{4}([0-9]{4})/i','$1****$2',$phone);
2、屏蔽固定电话中间段,代码如下:
preg_replace('/(0[0-9]{2,3}[-]?[2-9])[0-9]{3,4}([0-9]{3}[-]?[0-9]?)/i','$1****$2',$phone);
例如如下代码:
- $phone = '010-88888888-8';
- $phone1 = '13888888888';
- $phone = preg_replace('/(0[0-9]{2,3}[-]?[2-9])[0-9]{3,4}([0-9]{3}[-]?[0-9]?)/i','$1****$2',$phone);
- $phone1 = preg_replace('/(1[358]{1}[0-9])[0-9]{4}([0-9]{4})/i','$1****$2',$phone1);
- echo $phone,'<br>www.111Cn.net';
- echo $phone1,'<br>';
- //结果输出:
- //138****8888
- //010-8****888
新闻热点
疑难解答