PHP正则表达式屏蔽电话号码中间段

要屏蔽电话号码中间段,首先要知道电话号码的正则表达式。

先来看看PHP匹配电话号码的正则表达式。

匹配固定电话的正则表达式为:

/(0[0-9]{2,3}[\-]?[2-9][0-9]{6,7}[\-]?[0-9]?)/i

匹配手机号码的正则表达式为:

/(1[358]{1}[0-9]{9})/i

要用一个表达式来匹配所有的电话号码只需要将它们合并起来就可以了,如下:

/(0[0-9]{2,3}[\-]?[2-9][0-9]{6,7}[\-]?[0-9]?)|(1[358]{1}[0-9]{9})/i

例如:

$phone = ‘010-88888888-8‘;
preg_match(‘/(0[0-9]{2,3}[\-]?[2-9][0-9]{6,7}[\-]?[0-9]?)|(1[358]{1}[0-9]{9})/i‘,$phone,$match);
print_r($match);

看完电话号码的正则表达式,再来看如何用星号(*)屏蔽电话号码中间段。

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>‘;
echo $phone1,‘<br>‘;

结果输出:

138****8888
010-8****888

PHP正则表达式屏蔽电话号码中间段

时间: 2024-10-29 17:57:09

PHP正则表达式屏蔽电话号码中间段的相关文章

Java开发中利用正则表达式屏蔽关键字符

在开发中我们时常将一段字符串的头尾显示中间用*代替  比如(135******567)如果用字符串替换的话相当麻烦,但是用正则表达式的话就很简单 例如将13583932812 改成 135 ****** 812 就可以利用正则表达式组的概念轻松取得 替换结果为

199,一个被正则表达式遗忘的号码段?

前不久换手机号,东想西想,最后选了个电信的199号码段.这下好了,当我注册某些网站的账号时,弹出个非法号码字段,惊了!怎么回事??? 于是想到:当我们注册某网站的时候,需要输入手机号进行注册.比如唯品会的注册界面,当你输入的手机号不对时就会出现错误提示:请输入正确的手机号码. 这个是怎么实现的呢?比如我那个199开头的电信号,总是被误认为非法号码.究其原因,原来是正则表达式搞的鬼. 首先了解一下什么是正则表达式?打开百度百科,它的解释如下: 所以,在程序设计上,正则表达式通常用于匹配字符串,一般

PHP使用正则表达式验证电话号码(手机和固定电话)

这个还不错,很有用. tel='验证的电话号码'; $isMob="/^1[3-8]{1}[0-9]{9}$/";  $isTel="/^([0-9]{3,4}-)?[0-9]{7,8}$/";  if(!preg_match($isMob,$tel) && !preg_match($isTel,$tel))  {   echo '<script>alert("手机或电话号码格式不正确.如果是固定电话,必须形如(xxxx-xxx

C# 中使用正则表达式验证电话号码、手机号、身份证号

验证电话号码的主要代码如下: public bool IsTelephone(stringstr_telephone) { returnSystem.Text.RegularExpressions.Regex.IsMatch(str_telephone,@"^(\d{3,4}-)?\d{6,8}$"); } 验证手机号码的主要代码如下: public bool IsHandset(string str_handset) { returnSystem.Text.RegularExpres

C#中使用正则表达式验证电话号码、手机号、身份证号、数字和邮编

验证电话号码的主要代码如下: public bool IsTelephone(string str_telephone) { return System.Text.RegularExpressions.Regex.IsMatch(str_telephone, @"^(\d{3,4}-)?\d{6,8}$"); } 验证手机号码的主要代码如下: public bool IsHandset(string str_handset) { return System.Text.RegularEx

正则表达式匹配电话号码和手机号码

正则表达式 \d{3}-\d{8}|\d{4}-\d{7} 匹配 0511-4405222 | 021-87888822 不匹配 02-552255 12345-784787 正则表达式 (^\([0]\d{2}|\d{4}\))(\d{6,7}$) 匹配 (021)1234567 | (0411)123456 | (000)000000 不匹配 (123)1234567 | 025123456 | 0252345678 正则表达式 ^(?<national>\+?(?:86)?)(?<

正则表达式验证电话号码的有效性。。。。。。。。。。。。。

匹配11位      (注意对比上面的区别)

验证邮箱正则表达式,包含二级域名邮箱,手机号正则表达式支持170号段

[0-9a-z][a-z0-9\._-]{1,}@[a-z0-9-]{1,}[a-z0-9](\.[a-z]{1,})+ 之前在网上找的好多验证邮箱的都不支持验证二级域名的邮箱 js 使用方法 function CheckEmail(email){ if (/^[0-9a-z][a-z0-9\._-]{1,}@[a-z0-9-]{1,}[a-z0-9](\.[a-z]{1,})+$/.test(email) { return true; } return false; } C# 使用方法 cla

常用的正则表达式-匹配中英文、字母和数字

在做项目的过程中,使用正则表达式来匹配一段文本中的特定种类字符,是比较常用的一种方式,下面是对常用的正则匹配做了一个归纳整理. 匹配中文:[\u4e00-\u9fa5] 英文字母:[a-zA-Z] 数字:[0-9] 匹配中文,英文字母和数字及_: ^[\u4e00-\u9fa5_a-zA-Z0-9]+$ 同时判断输入长度: [\u4e00-\u9fa5_a-zA-Z0-9_]{4,10} ^[\w\u4E00-\u9FA5\uF900-\uFA2D]*$ 1.一个正则表达式,只含有汉字.数字.字