靚號檢測:主要可以檢測連號(正連 12345、倒連65432)、AABB號、手機號碼、日期號(生日號、年度號)、ABBCABB號,3位以上重復號。
更多類型號碼檢測可以根據以下表達式改造。
1.匹配6位順增 (?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){5}\d
2.匹配6位順降 (?:9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){5}\d
3.匹配6位順增或順降 (?:(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){5}|(?:9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){5})\d
4.匹配4-9位連續的數字 (?:(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){3,}|(?:9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){3,})\d
5.匹配3位以上的重復數字 ([\d])\1{2,}
6.匹配日期類型的數字 (19|20)[\d]{2}(1[0-2]|0?[1-9])(31|2[0-9]|1[0-9]|0?[0-9])
7.手機號碼類 (13[0-9]|15[0-9]|18[0-9])([\d]{2,4}){2}
8.匹配33111類型的 ([\d])\1{1,}([\d])\2{2,}
9.匹配5331533類型的 (([\d]){1,}([\d]){1,})\1{1,}
10,匹配22334,123355類型的 ([\d])\1{1,}([\d])\2{1,}
11.末位匹配$
//aabb,允許aaaa
(\d)\1(\d)\2$
//abab,允許aaaa
(\d)(\d)\1\2$
//aaab,允許aaaa
(\d)\1\1\d$
//同時允許
(?:(\d)\1(\d)\2|(\d)(\d)\3\4|(\d)\5\5\d)$
//以上如果不允許aaaa,第二個(\d)改為((?!\1)\d)
//如aabb,不允許aaaa
(\d)\1((?!\1)\d)\2$
var reg = new RegExp("(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){5}\\d", "g");
if (phone.match(reg) != null) {
code +=',ABCDEF';
}
var reg = new RegExp("(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){2}\\d", "g");
if (phone.match(reg) != null) {
code += ',ABC';
}
var reg = new RegExp("^(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){2}\\d[\\d][\\d](?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){2}\\d", "g");
if (phone.match(reg) != null) {
var result = phone.match(reg).toString();
if (result.substring(0, 3) == result.substring(5,8)) {
code += ',ABC**ABC';
}
}
var reg = new RegExp("[\\d](?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){2}\\d[\\d](?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){2}\\d$", "g");
if (phone.match(reg) != null) {
var result = phone.match(reg).toString();
if (result.substring(1, 4) == result.substring(5, 8)) {
code += ',*ABC*ABC';
}
}
var reg = new RegExp("(\\d)((?!\\1)\\d)\\2[\\d]", "g");
if (phone.match(reg) != null) {
var result = phone.match(reg).toString();
if (result.substring(0, 1) == result.substring(3, 4)) {
code += ',ABBA';
}
}
var reg = new RegExp("(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){2}\\d{4}", "g");
if (phone.match(reg) != null) {
var result = phone.match(reg).toString();
if (result.substring(0, 3) == result.substring(3, 6)) {
code += ',ABCABC';
}
}
var reg = new RegExp("^(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){2}\\d{4}", "g");
if (phone.match(reg) != null) {
var result = phone.match(reg).toString();
if (result.substring(0, 3) == result.substring(3, 6)) {
code += ',ABCABC*';
}
}
var reg = new RegExp("(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){2}\\d{3}", "g");
if (phone.match(reg) != null) {
var result = phone.match(reg).toString();
if (result.substring(0, 2) == result.substring(3, 5)) {
code += ',ABCAB';
}
}
var reg = new RegExp("(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){3}\\d", "g");
if (phone.match(reg) != null) {
code += ',ABCD';
}
var reg = new RegExp("(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){3}\\d{5}", "g");
if (phone.match(reg) != null) {
var result = phone.match(reg).toString();
if (result.substring(0, 4) == result.substring(4, 8)) {
code += ',ABCDABCD';
}
}
var reg = new RegExp("(\\d)((?!\\1)\\d)\\1\\2\\1\\2", "g");
if (phone.match(reg) != null) {
code += ',ABABAB';
}
var reg = new RegExp("^(\\d)((?!\\1)\\d)\\1\\2\\1\\2", "g");
if (phone.match(reg) != null) {
code += ',ABABAB*';
}
var reg = new RegExp("(\\d)((?!\\1)\\d)\\1\\2", "g");
if (phone.match(reg) != null) {
code += ',ABAB';
}
var reg = new RegExp("^(\\d)((?!\\1)\\d)[\\d][\\d](\\d)((?!\\1)\\d)[\\d][\\d]", "g");
if (phone.match(reg) != null) {
var result = phone.match(reg).toString();
if (result.substring(0, 2) == result.substring(4, 6)) {
code += ',AB**AB**';
}
}
var reg = new RegExp("[\\d][\\d](\\d)((?!\\1)\\d)[\\d][\\d](\\d)((?!\\1)\\d)$", "g");
if (phone.match(reg) != null) {
var result = phone.match(reg).toString();
if (result.substring(2, 4) == result.substring(6, 8)) {
code += ',**AB**AB';
}
}
var reg = new RegExp('([\\d])\\1{4,}', "g");
if (phone.match(reg) != null) {
code +=',AAAAA';
}
var reg = new RegExp('(.)\\1{3}', "g");
if (phone.match(reg) != null) {
code +=',AAAA';
}
var reg = new RegExp('(\\d)\\1\\1((?!\\1)\\d)', "g");
if (phone.match(reg) != null) {
code += ',AAAB';
}
var reg = new RegExp('(.)\\1{2}', "g");
if (phone.match(reg) != null) {
code +=',AAA';
}
var reg = new RegExp('(.)\\1{1}', "g");
if (phone.match(reg) != null) {
code +=',AA';
}
//AABBB
var reg = new RegExp("(\\d)\1((?!\\1)\\d)\\2\\2", "g");
if (phone.match(reg) != null) {
code +=',AABBB';
}
//AABB
var reg = new RegExp("(\\d)\\1((?!\\1)\\d)\\2", "g");
if (phone.match(reg) != null) {
code +=',AABB';
}
//AABCC
var reg = new RegExp("(\\d)\\1((?!\\1)\\d)((?!\\1)\\d)\\3", "g");
if (phone.match(reg) != null) {
var result = phone.match(reg).toString();
if (result.substring(2, 3) != result.substring(0, 1) && result.substring(2, 3) != result.substring(3, 4)) {
code += ',AABCC';
}
}
var reg = new RegExp("(\\d)\\1((?!\\1)\\d)\\2((?!\\1)\\d)\\3", "g");
if (phone.match(reg) != null) {
var result = phone.match(reg).toString();
if (result.substring(2, 4) != result.substring(0, 2) && result.substring(2, 4) != result.substring(4, 6)) {
code += ',AABBCC';
}
}
var reg = new RegExp("^(\\d)\\1((?!\\1)\\d)\\2((?!\\1)\\d)\\3", "g");
if (phone.match(reg) != null) {
var result = phone.match(reg).toString();
if (result.substring(2, 4) != result.substring(0, 2) && result.substring(2, 4) != result.substring(4, 6)) {
code += ',AABBCC*';
}
}
