`

Java常用正则表达式验证工具类(转载)

    博客分类:
  • Java
 
阅读更多

原文:Java常用正则表达式验证工具类RegexUtils.java

源代码下载地址:http://www.zuidaima.com/share/1550463379442688.htm

Java 表单注册常用正则表达式验证工具类,常用正则表达式大集合。

1. 电话号码

2. 邮编

3. QQ

4. E-mail

5. 手机号码

6. URL

7. 是否为数字

8. 是否为中文

9. 身份证

10. 域名

11. IP 。。。。

常用验证应有尽有! 这的确是您从事 web 开发,服务器端表单验证之良品!你,值得拥有 ^_^

Java代码  收藏代码
  1. /* 
  2.  *    Copyright 2012-2013 The Haohui Network Corporation 
  3.  */  
  4. package com.haohui.common.utils;  
  5.   
  6. import java.util.regex.Matcher;  
  7. import java.util.regex.Pattern;  
  8.   
  9. /** 
  10.  * @project baidamei 
  11.  * @author cevencheng <cevencheng@gmail.com> www.zuidaima.com 
  12.  * @create 2012-11-15 下午4:54:42 
  13.  */  
  14. public class RegexUtils {  
  15.   
  16.      /** 
  17.      * 验证Email 
  18.      * @param email email地址,格式:zhangsan@zuidaima.com,zhangsan@xxx.com.cn,xxx代表邮件服务商 
  19.      * @return 验证成功返回true,验证失败返回false 
  20.      */   
  21.     public static boolean checkEmail(String email) {   
  22.         String regex = "\\w+@\\w+\\.[a-z]+(\\.[a-z]+)?";   
  23.         return Pattern.matches(regex, email);   
  24.     }   
  25.        
  26.     /** 
  27.      * 验证身份证号码 
  28.      * @param idCard 居民身份证号码15位或18位,最后一位可能是数字或字母 
  29.      * @return 验证成功返回true,验证失败返回false 
  30.      */   
  31.     public static boolean checkIdCard(String idCard) {   
  32.         String regex = "[1-9]\\d{13,16}[a-zA-Z0-9]{1}";   
  33.         return Pattern.matches(regex,idCard);   
  34.     }   
  35.        
  36.     /** 
  37.      * 验证手机号码(支持国际格式,+86135xxxx...(中国内地),+00852137xxxx...(中国香港)) 
  38.      * @param mobile 移动、联通、电信运营商的号码段 
  39.      *<p>移动的号段:134(0-8)、135、136、137、138、139、147(预计用于TD上网卡) 
  40.      *、150、151、152、157(TD专用)、158、159、187(未启用)、188(TD专用)</p> 
  41.      *<p>联通的号段:130、131、132、155、156(世界风专用)、185(未启用)、186(3g)</p> 
  42.      *<p>电信的号段:133、153、180(未启用)、189</p> 
  43.      * @return 验证成功返回true,验证失败返回false 
  44.      */   
  45.     public static boolean checkMobile(String mobile) {   
  46.         String regex = "(\\+\\d+)?1[3458]\\d{9}$";   
  47.         return Pattern.matches(regex,mobile);   
  48.     }   
  49.        
  50.     /** 
  51.      * 验证固定电话号码 
  52.      * @param phone 电话号码,格式:国家(地区)电话代码 + 区号(城市代码) + 电话号码,如:+8602085588447 
  53.      * <p><b>国家(地区) 代码 :</b>标识电话号码的国家(地区)的标准国家(地区)代码。它包含从 0 到 9 的一位或多位数字, 
  54.      *  数字之后是空格分隔的国家(地区)代码。</p> 
  55.      * <p><b>区号(城市代码):</b>这可能包含一个或多个从 0 到 9 的数字,地区或城市代码放在圆括号—— 
  56.      * 对不使用地区或城市代码的国家(地区),则省略该组件。</p> 
  57.      * <p><b>电话号码:</b>这包含从 0 到 9 的一个或多个数字 </p> 
  58.      * @return 验证成功返回true,验证失败返回false 
  59.      */   
  60.     public static boolean checkPhone(String phone) {   
  61.         String regex = "(\\+\\d+)?(\\d{3,4}\\-?)?\\d{7,8}$";   
  62.         return Pattern.matches(regex, phone);   
  63.     }   
  64.        
  65.     /** 
  66.      * 验证整数(正整数和负整数) 
  67.      * @param digit 一位或多位0-9之间的整数 
  68.      * @return 验证成功返回true,验证失败返回false 
  69.      */   
  70.     public static boolean checkDigit(String digit) {   
  71.         String regex = "\\-?[1-9]\\d+";   
  72.         return Pattern.matches(regex,digit);   
  73.     }   
  74.        
  75.     /** 
  76.      * 验证整数和浮点数(正负整数和正负浮点数) 
  77.      * @param decimals 一位或多位0-9之间的浮点数,如:1.23,233.30 
  78.      * @return 验证成功返回true,验证失败返回false 
  79.      */   
  80.     public static boolean checkDecimals(String decimals) {   
  81.         String regex = "\\-?[1-9]\\d+(\\.\\d+)?";   
  82.         return Pattern.matches(regex,decimals);   
  83.     }    
  84.        
  85.     /** 
  86.      * 验证空白字符 
  87.      * @param blankSpace 空白字符,包括:空格、\t、\n、\r、\f、\x0B 
  88.      * @return 验证成功返回true,验证失败返回false 
  89.      */   
  90.     public static boolean checkBlankSpace(String blankSpace) {   
  91.         String regex = "\\s+";   
  92.         return Pattern.matches(regex,blankSpace);   
  93.     }   
  94.        
  95.     /** 
  96.      * 验证中文 
  97.      * @param chinese 中文字符 
  98.      * @return 验证成功返回true,验证失败返回false 
  99.      */   
  100.     public static boolean checkChinese(String chinese) {   
  101.         String regex = "^[\u4E00-\u9FA5]+$";   
  102.         return Pattern.matches(regex,chinese);   
  103.     }   
  104.        
  105.     /** 
  106.      * 验证日期(年月日) 
  107.      * @param birthday 日期,格式:1992-09-03,或1992.09.03 
  108.      * @return 验证成功返回true,验证失败返回false 
  109.      */   
  110.     public static boolean checkBirthday(String birthday) {   
  111.         String regex = "[1-9]{4}([-./])\\d{1,2}\\1\\d{1,2}";   
  112.         return Pattern.matches(regex,birthday);   
  113.     }   
  114.        
  115.     /** 
  116.      * 验证URL地址 
  117.      * @param url 格式:http://blog.csdn.net:80/xyang81/article/details/7705960? 或 http://www.csdn.net:80 
  118.      * @return 验证成功返回true,验证失败返回false 
  119.      */   
  120.     public static boolean checkURL(String url) {   
  121.         String regex = "(https?://(w{3}\\.)?)?\\w+\\.\\w+(\\.[a-zA-Z]+)*(:\\d{1,5})?(/\\w*)*(\\??(.+=.*)?(&.+=.*)?)?";   
  122.         return Pattern.matches(regex, url);   
  123.     }   
  124.       
  125.     /** 
  126.      * <pre> 
  127.      * 获取网址 URL 的一级域名 
  128.      * http://www.zuidaima.com/share/1550463379442688.htm ->> zuidaima.com 
  129.      * </pre> 
  130.      *  
  131.      * @param url 
  132.      * @return 
  133.      */  
  134.     public static String getDomain(String url) {  
  135.         Pattern p = Pattern.compile("(?<=http://|\\.)[^.]*?\\.(com|cn|net|org|biz|info|cc|tv)", Pattern.CASE_INSENSITIVE);  
  136.         // 获取完整的域名  
  137.         // Pattern p=Pattern.compile("[^//]*?\\.(com|cn|net|org|biz|info|cc|tv)", Pattern.CASE_INSENSITIVE);  
  138.         Matcher matcher = p.matcher(url);  
  139.         matcher.find();  
  140.         return matcher.group();  
  141.     }  
  142.     /** 
  143.      * 匹配中国邮政编码 
  144.      * @param postcode 邮政编码 
  145.      * @return 验证成功返回true,验证失败返回false 
  146.      */   
  147.     public static boolean checkPostcode(String postcode) {   
  148.         String regex = "[1-9]\\d{5}";   
  149.         return Pattern.matches(regex, postcode);   
  150.     }   
  151.        
  152.     /** 
  153.      * 匹配IP地址(简单匹配,格式,如:192.168.1.1,127.0.0.1,没有匹配IP段的大小) 
  154.      * @param ipAddress IPv4标准地址 
  155.      * @return 验证成功返回true,验证失败返回false 
  156.      */   
  157.     public static boolean checkIpAddress(String ipAddress) {   
  158.         String regex = "[1-9](\\d{1,2})?\\.(0|([1-9](\\d{1,2})?))\\.(0|([1-9](\\d{1,2})?))\\.(0|([1-9](\\d{1,2})?))";   
  159.         return Pattern.matches(regex, ipAddress);   
  160.     }   
  161.        
  162. }  
  163.   
  164.     
分享到:
评论

相关推荐

    RegexUtils表单注册常用正则表达式验证工具类

    RegexUtils,Java 表单注册常用正则表达式验证工具类,常用正则表达式大集合。 1. 电话号码 2. 邮编 3. QQ 4. E-mail 5. 手机号码 6. URL 7. 是否为数字 8. 是否为中文 9. 身份证 10. 域名 11. IP

    常用正则表达式HTML,JAVA合集

    这个合集提供的HTML和Java正则表达式实例,为开发者提供了一个快速参考的工具,帮助他们在开发过程中快速有效地实现数据验证功能。理解并熟练运用这些正则表达式,对于提高代码质量和用户体验都有极大的帮助。在实际...

    java 正则表达式工具类,手机号码等

    java 验证手机号码 身份证 email url 以及其他常用的正则表达式的验证方法。

    java正则表达式.zip

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它基于模式匹配的概念,能够高效地进行文本搜索、替换和解析。在Java中,正则表达式主要通过`java.util.regex`包来实现,提供了Pattern和Matcher两个核心...

    常用java正则表达式

    ### 常用Java正则表达式知识点 #### 一、引言 正则表达式是一种强大的工具,用于处理文本并查找模式。多种编程语言,包括Perl、PHP、Python、JavaScript以及Java等均内置了对正则表达式的支持。本文将详细介绍Java...

    正则表达式验证工具Java

    本工具"正则表达式验证工具Java"专注于帮助开发者测试和验证他们的正则表达式,确保其能够按预期工作。 该工具的核心功能在于提供了一个用户友好的界面,允许输入正则表达式并应用到特定的文本上,以检查匹配结果。...

    正则表达式工具类,正则表达式封装,Java正则表达式

    总之,`RegUtils`是一个为了简化Java正则表达式操作而设计的工具类,它通过封装各种常见的正则表达式操作,使得开发者可以更方便地在代码中进行文本处理。在实际项目中,此类的使用能提高代码的可读性和可维护性。...

    Java正则表达式测试工具

    Java正则表达式测试工具是面向开发者和爱好者的一款实用程序,它可以帮助用户验证和调试他们的正则表达式。在Java编程环境中,正则表达式是一个强大的字符串处理工具,广泛用于数据验证、文本搜索和替换等任务。这款...

    正则表达式验证金额格式

    下面是一段JavaScript代码示例,展示如何使用上述正则表达式验证输入: ```javascript function validateAmount(amountStr) { const regex = /^-?[0-9]+(\.[0-9]{1,2})?$/; return regex.test(amountStr); } ...

    JAVA正则表达式大全

    以下是对这些文档标题所涉及的Java正则表达式知识点的详细解释: 1. **正则表达式之道** 这个主题可能涵盖了正则表达式的基础概念,包括元字符、字符类、量词和分组。元字符如`.`代表任意字符,`^`表示行首,`$`...

    java常用正则表达式(转)

    Java中的正则表达式是处理字符串的强大工具,它在编程中扮演着不可或缺的角色,尤其是在文本处理、数据验证和模式匹配等方面。这篇博客“java常用正则表达式(转)”可能详细介绍了Java如何使用正则表达式进行各种...

    正则表达式验证工具

    这时,正则表达式验证工具就显得尤为重要。 "正则表达式验证工具"是为了帮助开发者和用户检查正则表达式的正确性和有效性而设计的。这种工具通常具备以下功能: 1. **实时匹配**:用户输入正则表达式后,工具会...

    java_zhengze.rar_正则表达式_正则表达式 java

    本资料"java_zhengze.rar"提供了对Java正则表达式的详细讲解,包括基本概念、元字符、预定义字符类以及各种匹配操作,对于Java开发者来说是一份非常实用的学习资源。 首先,我们来了解一下正则表达式的基石——元...

    正则表达式验证工具(Regular)及文档

    "正则表达式验证工具(Regular)"是一款专为帮助用户理解和测试正则表达式设计的软件,它允许用户输入正则模式并实时检验其有效性,对初学者来说是一个极好的学习工具。 正则表达式的基本结构包括字符、元字符、...

    详解Java判断是否是整数,小数或实数的正则表达式

    文章中提供了`NumberValidationUtils`工具类,用于实现对整数、小数的正则表达式验证。该工具类使用了`java.util.regex`包中的`Pattern`和`Matcher`类来完成正则表达式的编译和匹配工作。以下是几个重要的方法说明:...

    Java Swing版的正则表达式测试工具

    Java Swing版的正则表达式测试工具是一款专为Java开发者设计的实用软件,它利用Swing作为GUI库,提供了一个直观、便捷的平台,用于学习和测试正则表达式。这款工具无需任何额外的安装步骤,只需具备Java环境,就可以...

    java 银行卡 验证 正则表达式使用

    以上就是关于"java 银行卡 验证 正则表达式使用"的知识点详解,包括了银行卡、手机号码、邮箱和URL的正则表达式验证。这些技巧在开发过程中非常实用,能够帮助我们确保用户输入的数据格式正确,从而提高程序的稳定性...

    java中用正则表达式检测IP地址是否合理

    使用正则表达式验证IP地址 为了验证一个字符串是否符合IPv4地址的标准格式,可以使用以下正则表达式: ```java "^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|...

    java 正则表达式应用jar包 regex-smart.jar

    Java正则表达式是编程语言Java中的一个强大工具,它用于模式匹配、数据验证和文本检索替换。在Java中,正则表达式是通过java.util.regex包提供的接口和类来实现的。`regex-smart.jar`这个库显然是为了简化开发者在...

    Java JS正则表达式大全

    在Java和JavaScript中,正则表达式是开发人员不可或缺的工具,无论是在数据验证、文本处理还是文件操作等方面,都能发挥巨大作用。 综上所述,Java和JavaScript的正则表达式具有广泛的应用,它们提供了丰富的语法和...

Global site tag (gtag.js) - Google Analytics