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");