今天在做运营商标签,其中通话和短信两部分标签需要区分手机号码和非手机号码,并且还要考虑手机号码前面的0086、86等前缀。

首先考虑到手机号码验证最方便的就是正则表达式,于是整理了一份最新的手机号码验证的正则表达式。

以下是三大运营商的号段分布:

*移动号段: 134,135,136,137,138,139,147,150,151,152,157,158,159,170,178,182,183,184,187,188

* 联通号段: 130,131,132,145,155,156,170,171,175,176,185,186

* 电信号段: 133,149,153,170,173,177,180,181,189

由三大运营商的号段分布的出正则表达式:

regex = "^((13[0-9])|(14[5,7,9])|(15[^4])|(18[0-9])|(17[0,1,3,5,6,7,8]))[0-9]{8}$"

有了正则表达式,核心问题就解决了,然后考虑去掉0086和86等前缀的问题,这里利用字符串的截取方法slice(),从最后一位开始,往前截取11位。

最终的代码如下:

def isMobileNumber(number: String): Boolean ={val regex = "^((13[0-9])|(14[5,7,9])|(15[^4])|(18[0-9])|(17[0,1,3,5,6,7,8]))[0-9]{8}$".rval length = number.lengthregex.findFirstMatchIn(number.slice(length-11,length)) != None}

欢迎关注我的公众号——数据杨公子。本公众号会分享包括但不限于大数据、数据治理、元数据管理、python 等方面的技术文章,主旨是和大家一起共同成长,用技术来认识我们这个数据的时代。

最新手机号正则表达式验证方法(scala版)相关推荐

  1. 手机号最新的正则表达式验证(截止2018-03-31)

    转:https://www.jianshu.com/p/18a245600468 /*** 手机号最新的正则表达式验证* * 移动:134-139,147(上网卡),150-152,157-159,1 ...

  2. 正则表达式验证方法整理

    第一次看正则表达式有些懵逼,以后肯定要用到,所以整理了网上常用的正则表达式验证方法,以备日后使用. 一.校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n ...

  3. Java正则表达式——最新手机号合法性验证

    根据最新三大运行商手机号号段,编写的此手机号验证工具类 package com.utils;import java.util.regex.Matcher; import java.util.regex ...

  4. java 手机号验证_java最新手机号码正则验证方法

    public static boolean isPhone(String phone) { String regex = "^((13[0-9])|(14[5,7,9])|(15([0-3] ...

  5. 最新手机正则表达式验证

    转自:最新手机号码验证正则表达式 现有手机号段: 移动:134 135 136 137 138 139 147 148 150 151 152 157 158 159 172 178 182 183 ...

  6. 手机号正则表达式验证_想精通正则表达式 这几个正则表达式学习资料及工具你必须有!...

    正则表达式不是什么开发语言,也不什么脚本语言,但是你在做项目开发的时候,离不开它.你可以把它理解过一种逻辑公式,正则表达式通常被用来检索.替换那些符合某个模式(规则)的文本.正则对刚入门的程序员,甚至 ...

  7. 手机号正则表达式验证_还不会正则表达式?看这篇!

    前言 正则表达式是很多程序员,甚至是一些有了多年经验的开发者薄弱的一项技能.大家都很多时候都会觉得正则表达式难记.难学.难用,但不可否认的是正则表达式是一项很重要的技能,所有我将学习和使用正则表达式时 ...

  8. 最新手机号正则表达式,及生成程序

    获取手机号段网址:https://www.jihaoba.com/tools/haoduan/ 先给截止于日期 2021-08-20的结果 String patternPHone="^1(( ...

  9. js手机号正则表达式验证

    看到网上很多代码都很复杂,还包括以中文开头的86,17951,其实谁会填这么多,无非是检验一下他们是否位数对不对,开头有没有写错而已.下面我们从百度百科的手机号码历程来看:现在的手机号码段有联通.移动 ...

  10. java 手机号正则表达式验证

    目前是截止2019年6月最新,适配各种手机号,满足常见号码验证 import java.util.regex.Matcher; import java.util.regex.Pattern; impo ...

最新文章

  1. 场景几何约束在视觉定位中的探索
  2. 肖仰华:基于知识图谱的用户理解
  3. 傅里叶变换的初级理解二
  4. 一次ajax多次回调结果,Ajax异步的回调函数执行了多遍
  5. Girls and Boys
  6. C++继承中的对象模型
  7. 源码分析:Java对象的内存分配
  8. Webpack实战(五):轻松读懂Webpack如何分离样式文件
  9. PAT乙级(1025 反转链表)
  10. 前后端分离的用户验证原理及Spring Boot + JWT的框架搭建(附完整的框架代码)之一
  11. 电脑端的mafsvr服务关掉_网吧才是电脑优化的精髓!学会3招你也不用羡慕网吧的流畅了...
  12. qpsk的映射过程_FPGA数字信号处理(28)QPSK星座映射与解映射
  13. error C2664: “StrCmpW”: 不能将参数 2 从“const char [12]”转换为“PCWSTR”
  14. 儿童节特刊 | 如何练好手眼协调能力(手眼标定详解,附源码)
  15. T31-DAY20(JWT的介绍和使用)
  16. 初识vue的使用和设计模式
  17. 网络安全红队常用的攻击方法及路径
  18. Latex之安装GBK字体
  19. MySQL基础知识——ALTER TABLE
  20. win10常用电脑快捷操作;gif工具推荐

热门文章

  1. html小写数字怎么转换大写,如何将数字123转化成大写的文字 一百二十三 或 一二三?...
  2. java quartz配置
  3. DisGeNet:疾病相关的基因与突变位点数据库
  4. python下载快手视频教程_python如何下载快手视频
  5. 1.30 fcntl函数
  6. Java中的关键字汇总(50个)
  7. SAI绘制波浪卷发教程
  8. 理发店收银系统php,理发店收银系统优缺点
  9. 东莞理工学院计算机学院论文,东莞理工学院本科生毕业设计(论文)重复率检测实施办法(试行)...
  10. 备考OCJP认证知识点总结(三)