Js抓取字符串中的电话号码

作者: 曾燕茹  来源: 永洪科技  时间:2022年12月21日

实现抓取信息文本中的电话号码,一段文本内容可能包括各种信息,涉及姓名、年龄、家庭住址、移动号码等,可以通过js抓取文本中的所有电话号码进行整理。

基本的逻辑就是使用正则表达式进行提取,思路如下:

1.提取出5/11位的数字组合

2.判断提取出的数字组合是否符合要求

在提取过中所用到的正则表达式方法包括:

1.a.match():用于提取()里的符合a要求的数据

2.b.test():用于判断()里是否是符合b要求的数,若符合则返回true,不符合返回false

参考如下:

//先定义一个字符串代码

var string=’中国移动10086中国联通10010中国电信10000’;

//获取其中符合要求的5位数

var est=/\d{5}/g; //表达式后加一个g代表进行全局搜索,不加则只能提取到第一个匹配的结果

var string2=string.match(est);

// 获取string2中符合要求的数

for(var i=0;i<string2.length;i++){

//判断是否符合要求,^[1]表示从1开始,[0]表示符合的第二位数,\d$表示以数字结尾,{3}表示出现3

    var cox=/^[1][0]\d{3}$/;

    if (cox.test(string2[i])==true ) {

        ddebug(string2[i]);

    }

}

抓取到电话号码后,如果需要进行数据脱敏,可以添加以下代码:

var result = matchPhoneNum(str,regx);

debug(result);

function matchPhoneNum(str,regx){

    var phoneNums = str.match(regx);

    for(var i= 0;i<phoneNums.length;i++){

        //替换所有手机号

        var temp = phoneNums[i]

        //隐藏手机号中间4(例如:12345678910,隐藏后为123****8910)

        temp = temp.replace(/(\d{3})\d{4}(\d{4})/,'$1****$2');

        debug("temp:"+temp);

        str = str.replace(phoneNums[i],temp);

    }

    return str;

}

版权声明

 

永洪BI
更敏捷、更快速、更强大

申请试用
Copyright © 2012-2023开发者:北京永洪商智科技有限公司版本:V10.0
京ICP备12050607号-1京公网安备110110802011451号 隐私政策应用权限