分享

js实现手机号身份证等加星(*)号

 我的前端图书馆 2016-04-27
有时候为了不让用户的手机号码和身份证号直接暴露在页面上,我们需要加星号处理,一般情况是在中间的位置加上几个星号,具体的代码可以参考下面:

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):"身份证位数不正常!");

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多