js实现手机号身份证等加星(*)号
有时候为了不让用户的手机号码和身份证号直接暴露在页面上,我们需要加星号处理,一般情况是在中间的位置加上几个星号,具体的代码可以参考下面:
var str='13155555555';
var str2 = str.substr(0,3)+"****"+str.substr(7); //131****5555
简单的通过字符串截取再组合的方法就可以实现,我们可以封装成一个方法,供以后使用
function plusXing (str,frontLen,endLen) {
var len = str.length-frontLen-endLen;
var xing = '';
for (var i=0;i<len;i++) {
xing+='*';
}
return str.substr(0,frontLen)+xing+str.substr(str.length-endLen);
}
三个参数的含义:str:字符串,frontLen:前面保留位数,endLen:后面保留位数。
上面这些写法只能骗小朋友了,像我们这种程序员一看源码就知道原手机号了,此时我们可以利用服务器脚本来实现,如php程序,下面来看一个例子.
//方法一
function mobile_asterisk($mobile)
{
$mobile_asterisk = substr($mobile,0,4)."****".substr($mobile,8,3);
return $mobile_asterisk;
}
echo mobile_asterisk("15810904579");
//方法二
echo preg_replace("/(1\d{1,4})\d\d\d\d(\d{3,4})/", "\$1****\$2", "15810904579");
//方法三
$haoma="15012345678";
echo preg_replace("/(d{3})d{5}/","$1*****",$haoma);
//输出150*****678
//方法四
$tel1 = "13888111188";
$tel2 = "+8613888111188";
$tel3 = "0861088111188";
$tel4 = "086-010-88111188";
echo preg_replace('/(^.*)\d{4}(\d{4})$/','\\1****\\2',$tel1),"\n";
echo preg_replace('/(^.*)\d{4}(\d{4})$/','\\1****\\2',$tel2),"\n";
echo preg_replace('/(^.*)\d{4}(\d{4})$/','\\1****\\2',$tel3),"\n";
echo preg_replace('/(^.*)\d{4}(\d{4})$/','\\1****\\2',$tel4),"\n";
//方法五
//屏蔽电话号码中间的四位数字
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);
}
}
身份证
[code]
echo
strlen($idcard)==15?substr_replace($idcard,"****",8,4):
(strlen($idcard)==18?substr_replace($idcard,"****",10,4):"身份证位数不正常!");