首页 > 其他分享 >正则表达式判断号码靓号类型

正则表达式判断号码靓号类型

时间:2023-08-28 22:45:56浏览次数:28  
标签:号码 正则表达式 靓号 substring phone result var reg match

正则表达式判断号码靓号类型

于 2018-04-20 10:38:35 发布6962 收藏 14 分类专栏: php 正则   php同时被 2 个专栏收录 95 篇文章0 订阅 订阅专栏 正则 3 篇文章0 订阅 订阅专栏

靓号检测:主要可以检测连号(正连 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$


  1.   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");
  2.   if (phone.match(reg) != null) {
  3.   code +=',ABCDEF';
  4.   }
  5.    
  6.   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");
  7.   if (phone.match(reg) != null) {
  8.   code += ',ABC';
  9.   }
  10.    
  11.   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");
  12.   if (phone.match(reg) != null) {
  13.   var result = phone.match(reg).toString();
  14.   if (result.substring(0, 3) == result.substring(5,8)) {
  15.   code += ',ABC**ABC';
  16.   }
  17.   }
  18.    
  19.   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");
  20.   if (phone.match(reg) != null) {
  21.   var result = phone.match(reg).toString();
  22.   if (result.substring(1, 4) == result.substring(5, 8)) {
  23.   code += ',*ABC*ABC';
  24.   }
  25.   }
  26.    
  27.   var reg = new RegExp("(\\d)((?!\\1)\\d)\\2[\\d]", "g");
  28.   if (phone.match(reg) != null) {
  29.   var result = phone.match(reg).toString();
  30.   if (result.substring(0, 1) == result.substring(3, 4)) {
  31.   code += ',ABBA';
  32.   }
  33.   }
  34.    
  35.   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");
  36.   if (phone.match(reg) != null) {
  37.   var result = phone.match(reg).toString();
  38.    
  39.   if (result.substring(0, 3) == result.substring(3, 6)) {
  40.   code += ',ABCABC';
  41.   }
  42.   }
  43.    
  44.   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");
  45.   if (phone.match(reg) != null) {
  46.   var result = phone.match(reg).toString();
  47.    
  48.   if (result.substring(0, 3) == result.substring(3, 6)) {
  49.   code += ',ABCABC*';
  50.   }
  51.   }
  52.    
  53.   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");
  54.   if (phone.match(reg) != null) {
  55.   var result = phone.match(reg).toString();
  56.    
  57.   if (result.substring(0, 2) == result.substring(3, 5)) {
  58.   code += ',ABCAB';
  59.   }
  60.   }
  61.    
  62.    
  63.    
  64.   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");
  65.   if (phone.match(reg) != null) {
  66.   code += ',ABCD';
  67.   }
  68.    
  69.   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");
  70.   if (phone.match(reg) != null) {
  71.   var result = phone.match(reg).toString();
  72.   if (result.substring(0, 4) == result.substring(4, 8)) {
  73.   code += ',ABCDABCD';
  74.   }
  75.   }
  76.    
  77.   var reg = new RegExp("(\\d)((?!\\1)\\d)\\1\\2\\1\\2", "g");
  78.    
  79.   if (phone.match(reg) != null) {
  80.   code += ',ABABAB';
  81.   }
  82.    
  83.   var reg = new RegExp("^(\\d)((?!\\1)\\d)\\1\\2\\1\\2", "g");
  84.    
  85.   if (phone.match(reg) != null) {
  86.   code += ',ABABAB*';
  87.   }
  88.    
  89.   var reg = new RegExp("(\\d)((?!\\1)\\d)\\1\\2", "g");
  90.   if (phone.match(reg) != null) {
  91.   code += ',ABAB';
  92.   }
  93.    
  94.    
  95.   var reg = new RegExp("^(\\d)((?!\\1)\\d)[\\d][\\d](\\d)((?!\\1)\\d)[\\d][\\d]", "g");
  96.   if (phone.match(reg) != null) {
  97.    
  98.   var result = phone.match(reg).toString();
  99.   if (result.substring(0, 2) == result.substring(4, 6)) {
  100.   code += ',AB**AB**';
  101.   }
  102.   }
  103.    
  104.   var reg = new RegExp("[\\d][\\d](\\d)((?!\\1)\\d)[\\d][\\d](\\d)((?!\\1)\\d)$", "g");
  105.   if (phone.match(reg) != null) {
  106.   var result = phone.match(reg).toString();
  107.   if (result.substring(2, 4) == result.substring(6, 8)) {
  108.   code += ',**AB**AB';
  109.   }
  110.   }
  111.    
  112.   var reg = new RegExp('([\\d])\\1{4,}', "g");
  113.    
  114.   if (phone.match(reg) != null) {
  115.   code +=',AAAAA';
  116.   }
  117.    
  118.    
  119.   var reg = new RegExp('(.)\\1{3}', "g");
  120.   if (phone.match(reg) != null) {
  121.   code +=',AAAA';
  122.   }
  123.    
  124.   var reg = new RegExp('(\\d)\\1\\1((?!\\1)\\d)', "g");
  125.   if (phone.match(reg) != null) {
  126.   code += ',AAAB';
  127.   }
  128.    
  129.   var reg = new RegExp('(.)\\1{2}', "g");
  130.   if (phone.match(reg) != null) {
  131.   code +=',AAA';
  132.   }
  133.    
  134.    
  135.    
  136.   var reg = new RegExp('(.)\\1{1}', "g");
  137.   if (phone.match(reg) != null) {
  138.   code +=',AA';
  139.   }
  140.    
  141.   //AABBB
  142.   var reg = new RegExp("(\\d)\1((?!\\1)\\d)\\2\\2", "g");
  143.   if (phone.match(reg) != null) {
  144.   code +=',AABBB';
  145.   }
  146.    
  147.   //AABB
  148.   var reg = new RegExp("(\\d)\\1((?!\\1)\\d)\\2", "g");
  149.    
  150.   if (phone.match(reg) != null) {
  151.   code +=',AABB';
  152.   }
  153.    
  154.   //AABCC
  155.   var reg = new RegExp("(\\d)\\1((?!\\1)\\d)((?!\\1)\\d)\\3", "g");
  156.   if (phone.match(reg) != null) {
  157.    
  158.   var result = phone.match(reg).toString();
  159.   if (result.substring(2, 3) != result.substring(0, 1) && result.substring(2, 3) != result.substring(3, 4)) {
  160.   code += ',AABCC';
  161.   }
  162.   }
  163.    
  164.   var reg = new RegExp("(\\d)\\1((?!\\1)\\d)\\2((?!\\1)\\d)\\3", "g");
  165.   if (phone.match(reg) != null) {
  166.   var result = phone.match(reg).toString();
  167.   if (result.substring(2, 4) != result.substring(0, 2) && result.substring(2, 4) != result.substring(4, 6)) {
  168.   code += ',AABBCC';
  169.   }
  170.   }
  171.    
  172.   var reg = new RegExp("^(\\d)\\1((?!\\1)\\d)\\2((?!\\1)\\d)\\3", "g");
  173.   if (phone.match(reg) != null) {
  174.   var result = phone.match(reg).toString();
  175.   if (result.substring(2, 4) != result.substring(0, 2) && result.substring(2, 4) != result.substring(4, 6)) {
  176.   code += ',AABBCC*';
  177.   }
  178.   }

匹配号码后4位为ABAB:

“^\d*(\d)(\d)\1\2$”

匹配号码后4位为AABB: 

“^\d*(\d)\1(\d)\2$” 

 

// ABBABB 

"^(\\d)(\\d)\\2\\1\\2\\2$"

// 4位以上 位递增或者递减(7890也是递增)

"(?:(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)|9(?=0)){2,}|(?:0(?=9)|9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){2,})\\d"


  1.   //匹配6位顺增
  2.   string pattern = "(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){5}\\d";
  3.    
  4.   //匹配6位顺降
  5.   pattern = "(?:9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){5}\\d";
  6.    
  7.   //匹配6位顺增或顺降
  8.   pattern = "(?:(?: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";
  9.    
  10.   //匹配4-9位连续的数字
  11.   pattern = "(?:(?: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";
  12.    
  13.   //匹配3位以上的重复数字
  14.   pattern = "([\\d])\\1{2,}";
  15.    
  16.   //匹配手机号码类
  17.   pattern = "(13[0-9]|15[0-9]|18[0-9])([\\d]{2,4}){2}";
  18.    
  19.   //匹配连同号如“112233”“222333”
  20.   pattern = "([\\d])\1{1,}([\\d])\\2{2,}"; //这个测试没有通过,要重新编写
  21.    
  22.   //匹配2233类型
  23.   pattern = "([\\d])\\1{1,}([\\d])\\2{1,}";

 

  1.   // 手机号、生日号、跟公司业务相关的号码
  2.   "^(0|13|15|18|168|400|800)[0-9]*$"
  3.   "^\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])$"
  4.   "^\\d*(1688|2688|2088|2008|5188|10010|10001|666|888|668|686|688|866|868|886|999)\\d*$"
  5.   // 重复号码,镜子号码
  6.   "^(<a>\\d)(\\d)(\\d)\\1\\2\\3$"
  7.   "^(\\d)(\\d)(\\d)\\3\\2\\1$"
  8.   // AABB
  9.   "^\\d*(\\d)\\1(\\d)\\2\\d*$"
  10.   // AAABBB
  11.   "^\\d*(\\d)\\1\\1(\\d)\\2\\2\\d*$"
  12.   // ABABAB
  13.   "^(\\d)(\\d)\\1\\2\\1\\2\\1\\2$"
  14.   // ABCABC
  15.   "^(\\d)(\\d)(\\d)\\1\\2\\3$"
  16.   // ABBABB
  17.   "^(\\d)(\\d)\\2\\1\\2\\2$"
  18.   // AABAAB
  19.   "^(\\d)\\1(\\d)\\1\\1\\2$"
  20.   // 4-8 位置重复
  21.   "^\\d*(\\d)\\1{2,}\\d*$"
  22.   // 4位以上 位递增或者递减(7890也是递增)
  23.   "(?:(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)|9(?=0)){2,}|(?:0(?=9)|9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){2,})\\d"
  24.   // 不能以 518 、918 结尾
  25.   "^[0-9]*(518|918)$"

 

标签:号码,正则表达式,靓号,substring,phone,result,var,reg,match
From: https://www.cnblogs.com/tomcat2022/p/17663564.html

相关文章

  • 正则表达式:从句子中找出包含或不包含特定内容的单词
    这个弄了很久,其实特简单,但思路很容易被绕,分析过程不多说了,直接上demo。 Thisisadictionary.找出其中包含"is"的所有单词。varreg=/\b[\w]*is[\w]*\b/g;varresult="Thisisadictionary.".match(reg);for(vari=0;i<result.length;i++){ alert(result[i]);}不包含......
  • 正则表达式
    前言:今天学习的时候遇到了正则表达式,还不怎么会,故来学习一下1.1什么是正则表达式正则表达式是用于匹配字符串中字符组合的模式,当搜索文本中的数据是,可以使用搜索模式来描述搜索的内容,很多语言都支持正则表达式,其实就是匹配字符的规则,可以用来判断字符串中是否含有某个字符或者......
  • java 正则表达式 非捕获组(特殊构造)
    针对JavaAPI文档中的正则表达式关于特殊构造(非捕获组)的说明,例如:1.(?:X)X,asanon-capturinggroup2.(?idmsux-idmsux) Nothing,butturnsmatchflagson-off3.(?idmsux-idmsux:X)  X,asanon-capturinggroupwiththegivenflagson-off4.(?=......
  • Applescript脚本实现全自动无痕检测手机号码是否注册iMessage的原理
    一、检测数据的两种方式:1.人工筛选,将要验证的号码输出到文件中,以逗号分隔。再将文件中的号码粘贴到iMessage客户端的地址栏,iMessage客户端会自动逐个检验该号码是否为iMessage账号,检验速度视网速而定。红色表示不是iMessage账号,蓝色表示iMessage账号。2.编写脚本控制Macos/iphon......
  • 正则表达式
    规则符号描述样例?0次或1次runo?b->runb、runob+1次或多次runo+b->runob、runoob、runooob*0次、1次或多次runo*b->runb、runob、runoob、runooob.匹配除\n、\r之外的任何字符==[^\n\r]^匹配输入字符串的开始位置$匹配输入字符串的......
  • 身份证正则表达式|电话号码、邮箱正则表达式
    //身份证正则表达式(15位)isIDCard1=/1\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}KaTeXparseerror:Undefinedcontrolsequence:\datposition37:…IDCard2=/^[1-9]\̲d̲{5}[1-9]\d{3}((…/;身份证正则合并:(^\d{15}KaTeXparseerror:Undefinedcontrolsequence:......
  • 密码正则表达式大全
    1种只能由1种组成只能由字母组成,1-9位^[a-zA-Z]{1,9}$只能由数字组成,1-9位^\d{1,9}$只能由特殊字符组成,1-9位^[^\da-zA-Z\s]{1,9}$至少包含1种至少包含字母,1-9位^(?=.*[a-zA-Z]).{1,9}$至少包含数字,1-9位^(?=.*\d).{1,9}$至少包含特殊字符,1-9位^(?=.*[^\da-zA-Z\s])......
  • vue常用正则表达式判断身份证格式
    判断身份证格式 /^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/写成一个校验类,以后直接使用functionisIdCard(idCard){letreg=/^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|3......
  • python 使用re模块,配合正则表达式来查找字符串的想要的字符串
    一,首先:我们现了解一下python中正则表达式的基本规则有那些?1,字符串"\d"匹配0~9之间的一个数值eg:'dsas212b321321'使用r'\d'结果:(它会一次匹配一个数字依次查找)212321321  2,字符"+"重复前面一个匹配字符一次或者多次eg:'dsas212b321321'方式1:使用r'\d+'结果:(......
  • 「NOIP2008 普及组」ISBN 号码 题解
    前言转自博客,早期黑历史作品。这是本蒟蒻の第一篇题解qwq,发在博客上,还请多多关照.这道题是一道橙题,难度没有太大的问题,对于大犇们来说自然是一遍过的,本蒟就只能调调再交了.题面传送门题目描述每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括99位数字、1......