找文章 / 找答案
分享到

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

资讯 2022-12-12 15:11 2275人浏览 0人回复
摘要

实现抓取信息文本中的电话号码,一段文本内容可能包括各种信息,涉及姓名、年龄、家庭住址、移动号码等,可以通过Js抓取文本中的所有电话号码进行整理。基本的逻辑就是使用正则表达式进行提取,思路如下:1.提取出5/ ...

实现抓取信息文本中的电话号码,一段文本内容可能包括各种信息,涉及姓名、年龄、家庭住址、移动号码等,可以通过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;

}

本文暂无评论,快来抢沙发!

32 文章910 人气
数据分析
热门问答
  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
50W

会员等你来哦

Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部