当前位置: 首页 > 编程笔记 >

Java使用正则表达式验证手机号和电话号码的方法

易超
2023-03-14
本文向大家介绍Java使用正则表达式验证手机号和电话号码的方法,包括了Java使用正则表达式验证手机号和电话号码的方法的使用技巧和注意事项,需要的朋友参考一下

一个朋友需要,所以写了这两个,话不多说,看代码

中国电信号段 133、149、153、173、177、180、181、189、199
中国联通号段 130、131、132、145、155、156、166、175、176、185、186
中国移动号段 134(0-8)、135、136、137、138、139、147、150、151、152、157、158、159、178、182、183、184、187、188、198
其他号段
14号段以前为上网卡专属号段,如中国联通的是145,中国移动的是147等等。
虚拟运营商
电信:1700、1701、1702
移动:1703、1705、1706
联通:1704、1707、1708、1709、171
卫星通信:1349

 /**
  * 获取当前的httpSession
  * @return
  */
 public static HttpSession getSession() {
  return getRequest().getSession();
 }
 /**
  * 手机号验证
  * @param str
  * @return 验证通过返回true
  */
 public static boolean isMobile(final String str) {
   Pattern p = null;
   Matcher m = null;
   boolean b = false;
   p = Pattern.compile("^[1][3,4,5,7,8][0-9]{9}$"); // 验证手机号
   m = p.matcher(str);
   b = m.matches();
   return b;
 }
 /**
  * 电话号码验证
  * @param str
  * @return 验证通过返回true
  */
 public static boolean isPhone(final String str) {
   Pattern p1 = null, p2 = null;
   Matcher m = null;
   boolean b = false;
   p1 = Pattern.compile("^[0][1-9]{2,3}-[0-9]{5,10}$"); // 验证带区号的
   p2 = Pattern.compile("^[1-9]{1}[0-9]{5,8}$");     // 验证没有区号的
   if (str.length() > 9) {
     m = p1.matcher(str);
     b = m.matches();
   } else {
     m = p2.matcher(str);
     b = m.matches();
   }
   return b;
 }
 public static void main(String[] args) {
  String phone = "13900442200";
  String phone2 = "021-88889999";
  String phone3 = "88889999";
  String phone4 = "1111111111";
  //测试1
  if(isPhone(phone) || isMobile(phone)){
   System.out.println("1这是符合的");
  }
  //测试2
  if(isPhone(phone2) || isMobile(phone2)){
   System.out.println("2这是符合的");
  }
  //测试3
  if(isPhone(phone3) || isMobile(phone3)){
   System.out.println("3这是符合的");
  }
  //测试4
  if(isPhone(phone4) || isMobile(phone4)){
   System.out.println("4这是符合的");
  }else{
   System.out.println("不符合");
  }
 }

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对小牛知识库的支持。如果你想了解更多相关内容请查看下面相关链接

 类似资料:
  • 在注册会员时,经常需要输入电话号码,电话号码是指手机号码或者固定电话。如果输入的内容不合法,则会向用户输出提示。本实例模拟实现电话号码的验证功能,接收用户在控制台输入的电话号码,然后进行判断,并将结果输出。 在这里使用《 Java正则表达式》一节中讲到的正则表达式支持的字符来实现,步骤如下。 (1) 创建名为 Test21.java 的 Java 文件,在 main() 方法中开始编写代码。 (2

  • 本文向大家介绍最新手机号码、电话号码正则表达式,包括了最新手机号码、电话号码正则表达式的使用技巧和注意事项,需要的朋友参考一下 今天开始小编为大家系统整理关于正则表达式的一系列文章,希望大家会喜欢。 首先了解一下正则表达式的概念,正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等

  • 我正在修改一个脚本。该脚本包含一个表单,允许访问者向电话号码发送短信。在表单中,我有一个文本框,用户在其中输入文本接收器的电话号码。我正在使用正则表达式验证电话号码,以防止垃圾邮件发送者,并确保用户键入正确的号码。 以下是阿富汗使用的默认电话号码: 正则表达式验证首先应该确保使用93,然后确保在93之后使用78、77、79或700(其中之一),最后是6位数。 下面是我试图修复的Javascript

  • 我正试图建立一个全面的正则表达式来验证电话号码。理想情况下,它将处理国际格式,但它必须处理美国格式,包括以下内容: 我将用我目前的尝试来回答,但我希望有人有更好和/或更优雅的东西。

  • 问题内容: 该字符串不应包含SSN或电话号码。下面的正则表达式不起作用,它仅接受xxxxxxxxx格式。 不应包含或或。 问题答案: 您可以尝试: 解释一下,如果我们阅读了您提供的查询: 我们可以读到:( 在我的顶部版本中,我改写为:。)。 保证世界上任何字符串都不匹配其中至少两个,因此它们的组合始终为真,从而为您提供了一个简单得多的有效正则表达式: 是零宽度的断言,因此它不消耗任何东西。即使匹配

  • 本文向大家介绍手机号码验证方法(正则验证),包括了手机号码验证方法(正则验证)的使用技巧和注意事项,需要的朋友参考一下 只允许输入数字 下面看下最新手机号码验证正则表达式 由于手机号段的不断更新,以前的正则表达式已经无法满足需求。重新编写这条表达式,号段资料来源依据:http://www.jihaoba.com/tools/haoduan/ 现有手机号段: 移动:139   138   137