java-正则表达式判断手机号
2024-10-21 05:00:08
要更加准确的匹配手机号码只匹配11位数字是不够的,比如说就没有以144开始的号码段,
故先要整清楚现在已经开放了多少个号码段,国家号码段分配如下:
移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
联通:130、131、132、152、155、156、185、186
电信:133、153、180、189、(1349卫通)
以上这些只是过去已知的,可能还随时在增加或在变,比如小米移动的17x开头的号段。
但我们把它封装到一个实用工具类中,所有用到的地方都使用这一处代码,有变更的时候修改一下这里就可以了。
那么现在就可以使用正则匹配测试:
import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 移动相关操作实用类 MobileUtils * * @author lipw * @date 2017年7月5日上午11:25:45 */ public class MobileUtils { /** * 验证手机号 * @author lipw * @date 2017年4月5日上午11:34:07 * @param mobiles * 手机号码 * @return * 有效返回true,否则返回false */ public static boolean isMobileNO(String mobiles) { // Pattern p = // Pattern.compile("^((147)|(17[0-9])|(13[0-9])|(15[^4,\\D])|(18[0-9]))\\d{8}$"); Pattern p = Pattern.compile("^((13[0-9])|(15[^4])|(18[0-9])|(17[0-9])|(147))\\d{8}$"); Matcher m = p.matcher(mobiles); return m.matches(); } }
最新文章
- drbd
- 我所理解的OOP——UML六种关系(转)
- 碰到这个SB错误,'Taglist: Exuberant ctags (http://ctags.sf.net) not found in PATH. Plugin is not loaded.点办
- vijos P1352 最大获利(最小割)
- 每天一个Linux命令(19)--find命令
- 用shell实现linux系统应用文件清理工具
- 微信小程序与Java后台通信
- Angel - MemoryDataBlock - angel.task.estimize.sample.number
- LearnOpenGL学习笔记(二)——着色器简单理解
- laravel 集合
- HTML5<;input>;标签
- (转)C#读取MAC的几种方法
- H5地理位置定位
- 高性能网站架构缓存——redis集群
- 查看tomcat启动文件都干点啥---catalina.bat(转)
- HDUOJ--点球大战
- 信号(Django信号、Flask信号、Scrapy信号)
- consul 1.2 支持service mesh
- JavaScript定义类的方式与其它OO语言有些差异
- 【C#】ORM框架