在开发中有时会有这样的需求,就是判断用户输入的手机号码是否正确,这里就需要使用到了正则表达式。

这里贴出一个电话号码检查的工具类,基本的电话号码格式都能够满足了。

**[java]** [view plain](http://blog.csdn.net/afei__/article/details/51482801#) [copy](http://blog.csdn.net/afei__/article/details/51482801#)

import java.util.regex.Matcher;

import java.util.regex.Pattern;

import java.util.regex.PatternSyntaxException;

public class PhoneFormatCheckUtils {

/**

* 大陆号码或香港号码均可

*/

public static boolean isPhoneLegal(String str)throws PatternSyntaxException {

return isChinaPhoneLegal(str) || isHKPhoneLegal(str);

}

/**

* 大陆手机号码11位数,匹配格式:前三位固定格式+后8位任意数

* 此方法中前三位格式有:

* 13+任意数

* 15+除4的任意数

* 18+除1和4的任意数

* 17+除9的任意数

* 147

*/

public static boolean isChinaPhoneLegal(String str) throws PatternSyntaxException {

String regExp = "^((13[0-9])|(15[^4])|(18[0,2,3,5-9])|(17[0-8])|(147))\\d{8}$";

Pattern p = Pattern.compile(regExp);

Matcher m = p.matcher(str);

return m.matches();

}

/**

* 香港手机号码8位数,5|6|8|9开头+7位任意数

*/

public static boolean isHKPhoneLegal(String str)throws PatternSyntaxException {

String regExp = "^(5|6|8|9)\\d{7}$";

Pattern p = Pattern.compile(regExp);

Matcher m = p.matcher(str);

return m.matches();

}

}

下面是移动电话 手机号 和邮编的判断

package com.tmall.epp.web.module.util;

import java.util.regex.Pattern;

/**

* 移动电话、固话、邮编的校验

* @since 2015.12.15

*/

public class ImportCsvValidate {

/**

* 验证手机号码(支持国际格式,+86135xxxx...(中国内地),+00852137xxxx...(中国香港))

* @param mobile 移动、联通、电信运营商的号码段

*

移动的号段:134(0-8)、135、136、137、138、139、147(预计用于TD上网卡)

*、150、151、152、157(TD专用)、158、159、187(未启用)、188(TD专用)

*

联通的号段:130、131、132、155、156(世界风专用)、185(未启用)、186(3g)

*

电信的号段:133、153、180(未启用)、189

* @return 验证成功返回true,验证失败返回false

*/

public static boolean isMobile(String mobile){

String regex = "(\\+\\d+)?1[3458]\\d{9}$";

return Pattern.matches(regex, mobile);

}

/**

* 区号+座机号码+分机号码

* @param fixedPhone

* @return

*/

public static boolean isFixedPhone(String fixedPhone){

String reg="(?:(\\(\\+?86\\))(0[0-9]{2,3}\\-?)?([2-9][0-9]{6,7})+(\\-[0-9]{1,4})?)|" +

"(?:(86-?)?(0[0-9]{2,3}\\-?)?([2-9][0-9]{6,7})+(\\-[0-9]{1,4})?)";

return Pattern.matches(reg, fixedPhone);

}

/**

* 匹配中国邮政编码

* @param postcode 邮政编码

* @return 验证成功返回true,验证失败返回false

*/

public static boolean isPostCode(String postCode){

String reg = "[1-9]\\d{5}";

return Pattern.matches(reg, postCode);

}

public static void main(String[] args) {

String mobile = "18600000000";

boolean ret = isMobile(mobile);

System.out.println(ret);

String postCode = "110200";

ret = isPostCode(postCode);

System.out.println(ret);

String isFixedPhone = "0571-8888880-111";

ret = isFixedPhone(isFixedPhone);

System.out.println(ret);

}

}

当然,这里使用正则表达式不一定都面面俱到了,以后万一又有什么新的格式了也不好说,不过道理都是一样的,修改一下正则表达式的规则就行。

正则判断手机号地区_判断手机号正则表达式相关推荐

  1. java判断颜色合法_判断颜色是否合法的正则表达式(详解)

    判断颜色是否合法的正则表达式(详解) "^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$"; 意思是:以#开头,后面是数字和a-f的字符(大写或小写),这个值是 ...

  2. 正则判断手机号地区_一组匹配中国大陆手机号码的正则表达式

    来源:http://t.cn/E5A6FK0 正则表达式 ([PCRE]) 匹配所有号码(手机卡 + 数据卡 + 上网卡) 匹配所有支持短信功能的号码(手机卡 + 上网卡) 手机卡 虚拟运营商 物联网 ...

  3. 正则判断手机号地区_验证手机号码、电话号码的正则表达式汇总

    电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号) ((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3} ...

  4. mysql 手机号省份_根据手机号 判断省份和运营商

    移动号段: 134 135 136 137 138 139 147 148 150 151 152 157 158 159 165 172 178 182 183 184 187 188 198 联通 ...

  5. java手机号判断运营商_根据手机号 判断省份和运营商

    移动号段: 134 135 136 137 138 139 147 148 150 151 152 157 158 159 165 172 178 182 183 184 187 188 198 联通 ...

  6. java正则不能输入汉字_求一个正则表达式只输入字母或数字或汉字,要过滤特殊字符...

    正则表达式:只能有数字或中文或字母组成 chenzhe_n16292018-09-06 一个正则表达式测试(只可输入中文.字母和数字) u0129242379192015-10-05 js正则表达式限 ...

  7. 手机号验证_国际手机号收不到微博验证短信,微博验证短信一直提示超过上限怎么办?...

    我花了一个多星期,终于把我用国外手机申请的微博号找回来了,不多说了,直接开始说方法好吧,分享给大家,只有在这种时候才知道我的智商. 首先我们的手机号不能接受到短信,其实很多时候并不是因为微博超限,而是 ...

  8. 向量积判断优劣弧_判断经验论文优劣的10条诫命

    向量积判断优劣弧 There are a host of pathologies associated with the current peer review system that has bee ...

  9. python判断线程结束_判断Threading.start新线程是否执行完毕的实例

    新写自己的Threading类 class MyThread(threading.Thread):#我的Thread类 判断流程结束没 用于os shell命令是否执行判断 def __init__( ...

  10. java判断浏览器类型_判断浏览器类型

    一.判断是否为IE 以前判断是否IE浏览器用的是window.navigator.userAgent,跟踪这个信息,发现在开发环境,识别为IE10,但访问服务器则识别为IE11,但IE11的userA ...

最新文章

  1. HTML初级知识点总结(2)
  2. 汇编 int 10h
  3. Log4j MDC Tomcat下报异常org.apache.log4j.helpers.ThreadLocalMap
  4. python不同模块间传递数据_Python模块-数据传送模块
  5. 在WildFly的REST Web服务中与Jackson的双向关系
  6. winshark重要数据结构
  7. 编译器错误消息: CS0006: 未能找到元数据文件 System.EnterpriseServices
  8. 整数区间内整数的因子的个数
  9. 实训day4-python-Selenium请求库
  10. tsql 和 clr 的性能实测比对
  11. VirtualBox扩容教程
  12. element ui html编辑器,vue+element-ui 使用富文本编辑器
  13. 雷顿学院与与河北各地高校签署战略合作伙伴关系
  14. JAVA-pdfBox-纯文件流实现PDF文件加水印后转PDF图片文件下载
  15. 罗技c270摄像头支持linux,罗技C270摄像头的使用心得
  16. 十年磨一剑,两万字长文深剖析分享IC验证经验
  17. 玩家必备:QQ宠物升级所需时间明细表(转)
  18. CodeForces - 985E(Pencils and Boxes)
  19. 6月30日.百位行业大咖齐聚,共庆链全财经成功签约WBO官方媒体
  20. 数据库学习笔记(一) | 数据(Data)的定义

热门文章

  1. C#山寨版本【天翼拨号客户端】---内含详细抓包,模拟数据---万事俱备,只欠东风。
  2. 芯片后端的APR指什么?
  3. 在linux上通过yum安装JDK
  4. OpenBSD 7.2版发布 新增苹果M2芯片和高通骁龙8cx芯片组的支持
  5. 数据质量管理十步流程
  6. 快递规模持续扩大,丰网加盟迎发展新机遇
  7. win10去掉微软拼音的简繁体转换
  8. ftp 使用get命令下出现550 Failed to open file,但是使用put命令没问题的解决方法
  9. Mac IDEA 顶部的菜单栏不见了
  10. linux安装pcre错误,安装PCRE时出错