match regular phone number

Run Settings
LanguageJavaScript
Language Version
Run Command
console.log("Hello World!"); console.time("ET"); let str = 'jsonp_queryMoreNums({"provinceShowHuiTag":"0","splitLen":"12","numRetailList":[""],'+ '"code":"M0","uuid":"dde86bd5-6199-434c-afd8-e23d9b46236c","numArray":[16619755841,0,0,0,1,0,0,1,0,0,0,0,'+ '16619823605,0,0,0,1,0,0,0,0,0,0,0,16619934379,0,0,0,1,0,0,1,0,0,0,0,16619941714,0,0,0,1,0,0,1,0,0,0,0,'+ '16619703834,0,0,0,1,0,0,1,0,0,0,0,16619934138,0,0,0,1,0,0,1,0,0,0,0,16619947094,0,0,0,1,0,0,1,0,0,0,0,'+ '16619701603,0,0,0,1,0,0,0,0,0,0,0,17610465783,0,0,0,1,0,0,0,0,0,0,0,16619934845,0,0,0,1,0,0,1,0,0,0,0,'+ '16619738302,0,0,0,1,0,0,0,0,0,0,0,16619734382,0,0,0,1,0,0,1,0,0,0,0,16619726942,0,0,0,1,0,0,1,0,0,0,0,'+ '16619725148,0,0,0,1,0,0,1,0,0,0,0,16619842327,0,0,0,1,0,0,0,0,0,0,0,16619788177,0,0,0,1,0,0,0,0,0,0,0,'+ '16619843274,0,0,0,1,0,0,1,0,0,0,0,16619843113,0,0,0,1,0,0,0,0,0,0,0,16619803465,0,0,0,1,0,0,1,0,0,0,0,'+ '16619830849,0,0,0,1,0,0,1,0,0,0,0,17600070276,0,0,0,1,0,0,0,0,0,0,0,16619750739,0,0,0,1,0,0,0,0,0,0,0,'+ '16619828019,0,0,0,1,0,0,0,0,0,0,0,16619784550,0,0,0,1,0,0,1,0,0,0,0,17610468173,0,0,0,1,0,0,0,0,0,0,0,'+ '16619734721,0,0,0,1,0,0,1,0,0,0,0,16619844306,0,0,0,1,0,0,1,0,0,0,0,16619766304,0,0,0,1,0,0,1,0,0,0,0,'+ '16619707357,0,0,0,1,0,0,0,0,0,0,0,16619938174,0,0,0,1,0,0,1,0,0,0,0,17610463279,0,0,0,1,0,0,0,0,0,0,0,'+ '16619728192,0,0,0,1,0,0,0,0,0,0,0,18612613484,0,0,0,1,0,0,1,0,0,0,0,17610923957,0,0,0,1,0,0,0,0,0,0,0,'+ '16619825107,0,0,0,1,0,0,0,0,0,0,0,17611475901,0,0,0,1,0,0,0,0,0,0,0,16619833947,0,0,0,1,0,0,1,0,0,0,0,'+ '17600289273,0,0,0,1,0,0,0,0,0,0,0,16619802643,0,0,0,1,0,0,1,0,0,0,0,16619759342,0,0,0,1,0,0,1,0,0,0,0,'+ '16619839827,0,0,0,1,0,0,0,0,0,0,0,16619944962,0,0,0,1,0,0,1,0,0,0,0,16619865834,0,0,0,1,0,0,1,0,0,0,0,'+ '16619728217,0,0,0,1,0,0,0,0,0,0,0,17610428039,0,0,0,1,0,0,0,0,0,0,0,16619847194,0,0,0,1,0,0,1,0,0,0,0,'+ '17610425613,0,0,0,1,0,0,0,0,0,0,0,16619793687,0,0,0,1,0,0,0,0,0,0,0,16619744951,0,0,0,1,0,0,1,0,0,0,0,'+ '16619714012,0,0,0,1,0,0,1,0,0,0,0,16619845409,0,0,0,1,0,0,1,0,0,0,0,16619812831,0,0,0,1,0,0,0,0,0,0,0,'+ '16619840352,0,0,0,1,0,0,0,0,0,0,0,17610467539,0,0,0,1,0,0,0,0,0,0,0,16619759813,0,0,0,1,0,0,0,0,0,0,0,'+ '16619912405,0,0,0,1,0,0,1,0,0,0,0,17610873051,0,0,0,1,0,0,0,0,0,0,0,16619807059,0,0,0,1,0,0,0,0,0,0,0,'+ '16619848150,0,0,0,1,0,0,0,0,0,0,0,16619844191,0,0,0,1,0,0,1,0,0,0,0,18612963446,0,0,0,1,0,0,1,0,0,0,0,'+ '16619732312,0,0,0,1,0,0,0,0,0,0,0,16619841679,0,0,0,1,0,0,0,0,0,0,0,16619720673,0,0,0,1,0,0,0,0,0,0,0,'+ '16619765937,0,0,0,1,0,0,0,0,0,0,0,16619731904,0,0,0,1,0,0,1,0,0,0,0,16619737461,0,0,0,1,0,0,1,0,0,0,0,'+ '16619894249,0,0,0,1,0,0,1,0,0,0,0,16619807482,0,0,0,1,0,0,1,0,0,0,0,16619894073,0,0,0,1,0,0,1,0,0,0,0,'+ '16619824945,0,0,0,1,0,0,1,0,0,0,0,16619741409,0,0,0,1,0,0,1,0,0,0,0,16619751726,0,0,0,1,0,0,0,0,0,0,0,'+ '16619839924,0,0,0,1,0,0,1,0,0,0,0,18501387641,0,0,0,1,0,0,1,0,0,0,0,16619895904,0,0,0,1,0,0,1,0,0,0,0,'+ '16619714941,0,0,0,1,0,0,1,0,0,0,0,18519149341,0,0,0,1,0,0,1,0,0,0,0,16619785584,0,0,0,1,0,0,1,0,0,0,0,'+ '17610461670,0,0,0,1,0,0,0,0,0,0,0,16619756254,0,0,0,1,0,0,1,0,0,0,0,16619774498,0,0,0,1,0,0,1,0,0,0,0,'+ '16619785142,0,0,0,1,0,0,1,0,0,0,0,16619702243,0,0,0,1,0,0,1,0,0,0,0,16619791562,0,0,0,1,0,0,0,0,0,0,0,'+ '16619842098,0,0,0,1,0,0,0,0,0,0,0,16619820013,0,0,0,1,0,0,0,0,0,0,0,16619784381,0,0,0,1,0,0,1,0,0,0,0,'+ '16619844350,0,0,0,1,0,0,1,0,0,0,0,16619841875,0,0,0,1,0,0,0,0,0,0,0,16619842917,0,0,0,1,0,0,0,0,0,0,0,'+ '16619795374,0,0,0,1,0,0,1,0,0,0,0,16619725446,0,0,0,1,0,0,1,0,0,0,0,16619841707,0,0,0,1,0,0,0,0,0,0,0,'+ '17610840587,0,0,0,1,0,0,0,0,0,0,0,17611463175,0,0,0,1,0,0,0,0,0,0,0,16619728544,0,0,0,1,0,0,1,0,0,0,0,'+ '16619843585,0,0,0,1,0,0,0,0,18823777888,15633343433,17756000123,18536353433,18526252422,18523242526,18523242525' let phones = str.match(/1\d{10}/g); // console.log(phones) //1.豹子号,有两个相同的三位数字 let one = /^(?=\d{11})\d*?(?:(\d)\1\1\d*?){2}\d*$/ //2.后8位只有两个数字 let two = /^(?=\d{11})1\d{2}(\d)\1*(?!\1)(\d)(?:\1|\2)+$/; //3.顺子,xxx123,即三个相同数字+三个连续数字 let three = /^(?=\d{11})1\d{4}(\d)\1\1(?:012|123|234|345|456|567|789)$/; //4.递增 let four = /^1\d\d(\d)(?:0\11\12\13|1\12\13\14|2\13\14\15|3\14\15\16|4\15\16\17|5\16\17\18|6\17\18\19)$/; //5.递减 let five = /1\d\d(\d)(?:9\18\17\16|8\17\16\15|7\16\15\14|6\15\14\13|5\14\13\12|4\13\12\11|3\12\11\10)$/; let ret = phones.map(v => { let pattern = "", code = 0; if(one.test(v)){ pattern = "xxxyyy"; code = 1; }else if(two.test(v)){ pattern = "xy"; code = 2; }else if(three.test(v)){ pattern = "xxxabc"; code = 3; }else if(four.test(v)){ pattern = "xaxbxcxd" code = 4; }else if(five.test(v)){ pattern = "xdxcxbxa"; code = 5; } return { phone: v, pattern: pattern, code: code }; }).filter(v => v.code ); console.log(ret) console.timeEnd("ET");
Editor Settings
Theme
Key bindings
Full width
Lines