java 验证手机号码、电话号码(包括最新的电信、联通和移动号码)
- 目前的号码段(2017-06-01更新)
- java代码
package com.linbilin.test;import java.util.regex.Pattern;public class CheckPhone {/** 座机电话格式验证 **/private static final String PHONE_CALL_PATTERN = "^(?:\\(\\d{3,4}\\)|\\d{3,4}-)?\\d{7,8}(?:-\\d{1,4})?$";/*** 中国电信号码格式验证 手机段: 133,153,180,181,189,177,1700,173* **/private static final String CHINA_TELECOM_PATTERN = "(?:^(?:\\+86)?1(?:33|53|7[37]|8[019])\\d{8}$)|(?:^(?:\\+86)?1700\\d{7}$)";/*** 中国联通号码格式验证 手机段:130,131,132,155,156,185,186,145,176,1707,1708,1709,175* **/private static final String CHINA_UNICOM_PATTERN = "(?:^(?:\\+86)?1(?:3[0-2]|4[5]|5[56]|7[56]|8[56])\\d{8}$)|(?:^(?:\\+86)?170[7-9]\\d{7}$)";/*** 简单手机号码校验,校验手机号码的长度和1开头*/private static final String SIMPLE_PHONE_CHECK = "^(?:\\+86)?1\\d{10}$";/*** 中国移动号码格式验证* 手机段:134,135,136,137,138,139,150,151,152,157,158,159,182,183,184* ,187,188,147,178,1705* **/private static final String CHINA_MOBILE_PATTERN = "(?:^(?:\\+86)?1(?:3[4-9]|4[7]|5[0-27-9]|7[8]|8[2-478])\\d{8}$)|(?:^(?:\\+86)?1705\\d{7}$)";/*** 仅手机号格式校验*/private static final String PHONE_PATTERN = new StringBuilder(300).append(CHINA_MOBILE_PATTERN).append("|").append(CHINA_TELECOM_PATTERN).append("|").append(CHINA_UNICOM_PATTERN).toString();/*** 手机和座机号格式校验*/private static final String PHONE_TEL_PATTERN = new StringBuilder(350).append(PHONE_PATTERN).append("|").append("(").append(PHONE_CALL_PATTERN).append(")").toString();/*** 匹配多个号码以,、或空格隔开的格式,如 17750581369* 13306061248、(596)3370653,17750581369,13306061248 (0596)3370653* @param input* @param separator 可以自己指定分隔符,如"、, "表示可以以顿号、逗号和空格分隔* @return*/public static boolean checkMultiPhone(String input, String separator) {separator = escapeMetacharacterOfStr(separator);String regex = "^(?!.+["+ separator+ "]$)(?:(?:(?:(?:\\(\\d{3,4}\\)|\\d{3,4}-)?\\d{7,8}(?:-\\d{1,4})?)|(?:1\\d{10}))(?:["+ separator + "]|$))+$";return match(regex, input);}/*** 转义字符串中的[]-^\元字符* * @param input* @param separator* @return*/private static String escapeMetacharacterOfStr(String input) {String regex = "[-^\\[\\]\\\\]";return input.replaceAll(regex, "\\\\$0");}/*** 仅手机号码校验* * @param input* @return*/public static boolean isPhone(String input) {return match(PHONE_PATTERN, input);}/*** 手机号或座机号校验* * @param input* @return*/public static boolean isPhoneOrTel(String input) {System.out.println(PHONE_TEL_PATTERN);return match(PHONE_TEL_PATTERN, input);}/*** 验证电话号码的格式* * @author LinBilin* @param str* 校验电话字符串* @return 返回true,否则为false*/public static boolean isPhoneCallNum(String str) {return match(PHONE_CALL_PATTERN, str);}/*** 验证【电信】手机号码的格式* * @author LinBilin* @param str* 校验手机字符串* @return 返回true,否则为false*/public static boolean isChinaTelecomPhoneNum(String str) {return match(CHINA_TELECOM_PATTERN, str);}/*** 验证【联通】手机号码的格式* * @author LinBilin* @param str* 校验手机字符串* @return 返回true,否则为false*/public static boolean isChinaUnicomPhoneNum(String str) {return match(CHINA_UNICOM_PATTERN, str);}/*** 验证【移动】手机号码的格式* * @author LinBilin* @param str* 校验手机字符串* @return 返回true,否则为false*/public static boolean isChinaMobilePhoneNum(String str) {return match(CHINA_MOBILE_PATTERN, str);}/*** 简单手机号码校验,校验手机号码的长度和1开头* * @param str* @return*/public static boolean isPhoneSimple(String str) {return match(SIMPLE_PHONE_CHECK, str);}/*** 匹配函数* * @param regex* @param input* @return*/private static boolean match(String regex, String input) {return Pattern.matches(regex, input);}}
java 验证手机号码、电话号码(包括最新的电信、联通和移动号码)相关推荐
- java 验证手机号码、电话号码(包括最新的电信、联通和移动号码) 1
Cooking Regex微信公众号 正则表达式学习 一.目前的号码段(2019-12-04更新) 新增号段 : 1.移动号码:189.198 2.联通号码:166 3.电信号码:191.199 [注 ...
- java电话号码_java 验证手机号码、电话号码(包括最新的电信、联通和移动号码)...
package com.linbilin.test; import java.util.regex.Pattern; public class CheckPhone { /** 座机电话格式验证 ** ...
- java验证手机号码的工具类-截止2022年中国大陆四家运营商以及虚拟运营商手机号码校验
1.中国大陆四家运营商以及虚拟运营商手机号码段 截止2022年2月份中国大陆四家运营商以及虚拟运营商手机号码段如下: 中国移动发布的号码段为:134(0-8),135,136,137,138,139, ...
- java验证手机号码
Pattern pattern = Pattern.compile("^1[3|4|5|7|8][0-9]{9}$"); if (!pattern.matcher(req.getP ...
- c#最新验证是否电话号码和手机号码
//最新是否电话号码和手机号码 public static bool IsPhoneNo(string str_handset) { retu ...
- 最新js验证手机号码、电话号码、身份证号码正则表达式代码
js验证手机号码.电话号码.身份证号码正则表达式 手机号码正则表达式验证 固定电话号码正则表达式 身份证正则 手机号码正则表达式验证 function checkPhone(){ var phone ...
- Java验证邮箱和手机号码正则表达式
Java验证邮箱和手机号码: import java.util.regex.Matcher; import java.util.regex.Pattern; /**邮箱正则表达式*/ public f ...
- java qq验证手机号码_java正则表达式表单验证类工具类(验证邮箱、手机号码、qq号码等)...
package util; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 使用正则表达式进行表单验证 * ...
- 正则判断手机号地区_验证手机号码、电话号码的正则表达式汇总
电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号) ((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3} ...
最新文章
- Matlab中的一些小技巧
- 使用angular2 自带的指令,快捷创建服务,组件等!
- 推荐“公主妄想症系列之二:第一次”
- 我的内核学习笔记15:海思Hi3516平台GPIO使用记录
- Android 蓝牙终端交互管理
- centos 安装rarlinux
- 用得上的商学课-老路
- A fastandrobust convolutionalneuralnetwork-based defect detection model inproductqualitycontrol-阅读笔记
- 北大三日游游记(北大信科暑期课堂)
- system verilog基础知识总结与复习(随机化)
- 什么是数据结构?什么是算法
- 流行音乐表明我们的注意力越来越短
- java设置excel标题栏_Java EasyExcel写入Excel中复杂头(head)表中的标题的方法及示例代码...
- JAVA POI WORD XWPFDocument 常用操作-随时更新
- 锎的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- Android 高德地图 自己位置的显示与点地图上任意一点的坐标
- excel毫秒、微妙运算
- 【油猴Tampermonkey】脚本安装教程+自用脚本推荐
- 【无人机】【2017.11】工程检查和地理空间制图用小型无人机系统
- 怎么利用群控解决问题