作者: 曾燕茹??來源: 永洪科技??時間:2022年12月21日
實現(xiàn)抓取信息文本中的電話號碼,一段文本內容可能包括各種信息,涉及姓名、年齡、家庭住址、移動號碼等,可以通過js抓取文本中的所有電話號碼進行整理。
基本的邏輯就是使用正則表達式進行提取,思路如下:
1.提取出5/11位的數(shù)字組合
2.判斷提取出的數(shù)字組合是否符合要求
在提取過中所用到的正則表達式方法包括:
1.a.match():用于提取()里的符合a要求的數(shù)據(jù)
2.b.test():用于判斷()里是否是符合b要求的數(shù),若符合則返回true,不符合返回false
參考如下:
//先定義一個字符串代碼
var string=’中國移動10086中國聯(lián)通10010中國電信10000’;
//獲取其中符合要求的5位數(shù)
var est=/\d{5}/g; //表達式后加一個g代表進行全局搜索,不加則只能提取到第一個匹配的結果
var string2=string.match(est);
// 獲取string2中符合要求的數(shù)
for(var i=0;i<string2.length;i++){
//判斷是否符合要求,^[1]表示從1開始,[0]表示符合的第二位數(shù),\d$表示以數(shù)字結尾,{3}表示出現(xiàn)3次
var cox=/^[1][0]\d{3}$/;
if (cox.test(string2[i])==true ) {
ddebug(string2[i]);
}
}
抓取到電話號碼后,如果需要進行數(shù)據(jù)脫敏,可以添加以下代碼:
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;
}
?
永洪科技
致力于打造全球領先的數(shù)據(jù)技術廠商