js和php分别实现对将字符串中的全部的电话号码中间四位改成****

一、需求

将某个字符串中全部的电话号码的中间四位改成 ****php

二、实现思路

一、使用正则匹配的方式把字符串中全部的电话号码取出
二、把取出的手机号码作字符的替换修改spa

三、效果

@9IF~S2D)GIONEA15(O%~VD.png

四、php实现

代码以下:code

public function vaildTel($s){
        $n = preg_match_all("/15[0-9]\d{8}|17[0-9]\d{8}|14[0-9]\d{8}|13[0-9]\d{8}|18[0-9]\d{8}/",$s,$arr);
        foreach ($arr[0] as $tel) {
            $new = substr($tel,0,3).'****'.substr($tel,7,strlen($tel));
            $s = str_replace($tel,$new,$s);
        }
        return $s;
    }

五、JS实现

function vaildTel(s){
    var obj = s.match(/((((13[0-9])|(15[^4])|(18[0,1,2,3,5-9])|(17[0-8])|(147))\d{8})|((\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}))?/g)

    var tel ;
    var trueTel;
    for (var item in obj){
        tel = obj[item];
        if(tel && tel.length == 11){
            trueTel = tel.substr(0, 3) + '****' + tel.substr(7)
            s=s.replace(tel,trueTel);
        }
    }
    return s;
}

六、缺陷

PHP实现的时候,若是字符串的长度大于11位,那么仅仅会对前11位数字进行处理rem

相关文章
相关标签/搜索