实现抓取信息文本中的电话号码,一段文本内容可能包括各种信息,涉及姓名、年龄、家庭住址、移动号码等,可以通过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; } |
2024-02-29
2024-01-22
2024-01-03
2023-12-27
2023-12-08
回答
回答
回答
回答
回答
0