Java 正则表达式工具类, Java 手机号码正则表达式,
Java最新手机正则表达式, Java 日期正则表达式
================================
©Copyright 蕃薯耀 2019年6月21日
http://fanshuyao.iteye.com/
import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.commons.lang.StringUtils; /** * 正则表达式工具类 * */ public class RegUtils { /** * 邮箱 */ public static final String EMAIL = "^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$"; /** * 手机号码 */ public static final String PHONE = "^(1[3-9]([0-9]{9}))$"; /** * 仅中文 */ public static final String CHINESE = "^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$"; /** * 整数 */ public static final String INTEGER = "^-?[1-9]\\d*$"; /** * 数字 */ public static final String NUMBER = "^([+-]?)\\d*\\.?\\d+$"; /** * 正整数 */ public static final String INTEGER_POS = "^[1-9]\\d*$"; /** * 浮点数 */ public static final String FLOAT = "^([+-]?)\\d*\\.\\d+$"; /** * 正浮点数 */ public static final String FLOAT_POS = "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$"; /** * 是否为正整数数字,包括0(00,01非数字) */ public static final String INTEGER_WITH_ZERO_POS = "^(([0-9])|([1-9]([0-9]+)))$"; /** * 是否为整数数字,包括正、负整数,包括0(00,01非数字) */ public static final String NUMBER_WITH_ZERO = "^((-)?(([0-9])|([1-9]([0-9]+))))$"; /** * 是否为数字字符串 */ public static final String NUMBER_TEXT = "^([0-9]+)$"; /** * 数字(整数、0、浮点数),可以判断是否金额,也可以是负数 */ public static final String NUMBER_ALL = "^((-)?(([0-9])|([1-9][0-9]+))(\\.([0-9]+))?)$"; /** * QQ,5-14位 */ public static final String QQ = "^[1-9][0-9]{4,13}$"; /** * IP地址 */ public static final String IP = "((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))"; /** * 邮编 */ public static final String POST_CODE = "[1-9]\\d{5}(?!\\d)"; /** * 普通日期 */ public static final String DATE = "^[1-9]\\d{3}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))$"; /** * 复杂日期,不区分闰年的2月 * 日期格式:2017-10-19 * 或2017/10/19 * 或2017.10.19 * 或2017年10月19日 * 最大31天的月份:(((01|03|05|07|08|10|12))-((0[1-9])|([1-2][0-9])|(3[0-1]))) * 最大30天的月份:(((04|06|11))-((0[1-9])|([1-2][0-9])|(30))) * 最大29天的月份:(02-((0[1-9])|([1-2][0-9]))) */ public static final String DATE_COMPLEX = "^(([1-2]\\d{3})(-|/|.|年)((((01|03|05|07|08|10|12))(-|/|.|月)((0[1-9])|([1-2][0-9])|(3[0-1])))|(((04|06|11))(-|/|.|月)((0[1-9])|([1-2][0-9])|(30)))|(02-((0[1-9])|([1-2][0-9]))))(日)?)$"; /** * 复杂的日期,区分闰年的2月 * 这个日期校验能区分闰年的2月,格式如下:2017-10-19 * (见:http://www.jb51.net/article/50905.htm) * ^((?!0000)[0-9]{4}-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)|([0-9]{2}(0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29)$ */ public static final String DATE_COMPLEX_LEAP_YEAR = "^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$"; /** * 正则表达式校验,符合返回True * @param regex 正则表达式 * @param content 校验的内容 * @return */ public static boolean isMatch(String regex, CharSequence content){ return Pattern.matches(regex, content); } /** * 校验手机号码 * @param mobile * @return */ public static final boolean isMoblie(String mobile){ boolean flag = false; if (null != mobile && !mobile.trim().equals("") && mobile.trim().length() == 11) { Pattern pattern = Pattern.compile(PHONE); Matcher matcher = pattern.matcher(mobile.trim()); flag = matcher.matches(); } return flag; } /** * 校验邮箱 * @param value * @return */ public static final boolean isEmail(String value){ boolean flag = false; if (null != value && !value.trim().equals("")) { Pattern pattern = Pattern.compile(EMAIL); Matcher matcher = pattern.matcher(value.trim()); flag = matcher.matches(); } return flag; } /** * 校验密码 * @param password * @return 长度符合返回true,否则为false */ public static final boolean isPassword(String password){ boolean flag = false; if (null != password && !password.trim().equals("")) { password = password.trim(); if(password.length() >= 6 && password.length() <= 30){ return true; } } return flag; } /** * 校验手机验证码 * @param value * @return 符合正则表达式返回true,否则返回false */ public static final boolean isPhoneValidateCode(String value){ boolean flag = false; if (null != value && !value.trim().equals("")) { Pattern pattern = Pattern.compile("^8\\d{5}$"); Matcher matcher = pattern.matcher(value.trim()); flag = matcher.matches(); } return flag; } /** * 判断是否全部大写字母 * @param str * @return */ public static boolean isUpperCase(String str){ if(StringUtils.isEmpty(str)){ return false; } String reg = "^[A-Z]$"; return isMatch(reg,str); } /** * 判断是否全部小写字母 * @param str * @return */ public static boolean isLowercase(String str){ if(StringUtils.isEmpty(str)){ return false; } String reg = "^[a-z]$"; return isMatch(reg,str); } /** * 是否ip地址 * @param str * @return */ public static boolean isIP(String str){ if(StringUtils.isEmpty(str)){ return false; } return isMatch(IP, str); } /** * 符合返回true,区分30、31天和闰年的2月份(最严格的校验),格式为2017-10-19 * @param str * @return */ public static boolean isDate(String str){ if(StringUtils.isEmpty(str)){ return false; } return isMatch(DATE_COMPLEX_LEAP_YEAR, str); } /** * 简单日期校验,不那么严格 * @param str * @return */ public static boolean isDateSimple(String str){ if(StringUtils.isEmpty(str)){ return false; } return isMatch(DATE, str); } /** * 区分30、31天,但没有区分闰年的2月份 * @param str * @return */ public static boolean isDateComplex(String str){ if(StringUtils.isEmpty(str)){ return false; } return isMatch(DATE_COMPLEX, str); } /** * 判断是否为数字字符串,如0011,10101,01 * @param str * @return */ public static boolean isNumberText(String str){ if(StringUtils.isEmpty(str)){ return false; } return isMatch(NUMBER_TEXT, str); } /** * 判断所有类型的数字,数字(整数、0、浮点数),可以判断是否金额,也可以是负数 * @param str * @return */ public static boolean isNumberAll(String str){ if(StringUtils.isEmpty(str)){ return false; } return isMatch(NUMBER_ALL, str); } /** * 是否为正整数数字,包括0(00,01非数字) * @param str * @return */ public static boolean isIntegerWithZeroPos(String str){ if(StringUtils.isEmpty(str)){ return false; } return isMatch(INTEGER_WITH_ZERO_POS, str); } /** * 是否为整数,包括正、负整数,包括0(00,01非数字) * @param str * @return */ public static boolean isIntegerWithZero(String str){ if(StringUtils.isEmpty(str)){ return false; } return isMatch(NUMBER_WITH_ZERO, str); } /** * 符合返回true,QQ,5-14位 * @param str * @return */ public static boolean isQQ(String str){ if(StringUtils.isEmpty(str)){ return false; } return isMatch(QQ, str); } public static void main(String[] args) { System.out.println(isMoblie("13430800244")); System.out.println(isMoblie("17730800244")); System.out.println(isMoblie("17630800244")); System.out.println(isMoblie("14730800244")); System.out.println(isMoblie("18330800244")); System.out.println(isMoblie("19330800244")); System.out.println(isMoblie("1333000244")); } }
================================
©Copyright 蕃薯耀 2019年6月21日
http://fanshuyao.iteye.com/
相关推荐
java 验证手机号码 身份证 email url 以及其他常用的正则表达式的验证方法。
Java正则表达式是Java编程语言中用于处理字符串的强大工具,它基于模式匹配的概念,能够高效地进行文本搜索、替换和解析。在Java中,正则表达式主要通过`java.util.regex`包来实现,提供了Pattern和Matcher两个核心...
本节我们将深入探讨正则表达式工具类`RegUtils`,它封装了正则表达式的常用功能,便于在实际开发中进行复用。 首先,`RegUtils`类通常会包含一系列静态方法,这些方法接受正则表达式和待处理字符串作为参数,返回...
Java正则表达式匹配工具是IT领域中一种强大的文本处理工具,它利用正则表达式(Regular Expression)的规则来查找、替换或者提取文本中的特定模式。正则表达式是一种特殊的字符序列,能够帮助程序员或者用户高效地...
总的来说,Java正则表达式是处理日志的强大工具,它能帮助我们快速定位问题、收集统计信息,提高开发效率。在实际操作时,应结合日志的具体格式和需求,灵活运用正则表达式,实现高效、准确的日志分析。
Java正则表达式是Java语言中用于处理字符串的强大工具,它允许程序员进行复杂的字符串匹配、查找和替换操作。正则表达式(Regular Expression)是一种模式匹配语言,通过特定的语法来描述字符串的模式,用于在文本中...
java 正则表达式工具类,验证手机号码 身份证 email
### 常用Java正则表达式知识点 #### 一、引言 正则表达式是一种强大的工具,用于处理文本并查找模式。多种编程语言,包括Perl、PHP、Python、JavaScript以及Java等均内置了对正则表达式的支持。本文将详细介绍Java...
提供的“例子”可能包含了各种实际的Java代码示例,演示了如何在实际编程中应用正则表达式,比如验证用户输入的邮箱格式、电话号码格式等。 正则表达式的学习需要对元字符、量词、预查、后向引用等概念有深入理解...
Java正则表达式测试工具是面向开发者和爱好者的一款实用程序,它可以帮助用户验证和调试他们的正则表达式。在Java编程环境中,正则表达式是一个强大的字符串处理工具,广泛用于数据验证、文本搜索和替换等任务。这款...
Java正则表达式是编程语言Java中的一个强大工具,它用于模式匹配、数据验证和文本检索替换。在Java中,正则表达式是通过java.util.regex包提供的接口和类来实现的。`regex-smart.jar`这个库显然是为了简化开发者在...
Java提供了`java.util.regex`包,通过`Pattern`和`Matcher`类支持正则表达式。以下是如何在Java中验证电话号码的一个例子: ```java import java.util.regex.Pattern; import java.util.regex.Matcher; String...
Java正则表达式是编程语言Java中用于处理字符串和文本的强大工具。它允许开发者通过模式匹配来执行复杂的文本分析和操作。在Java中,正则表达式的操作主要涉及两个核心类:`java.util.regex.Matcher`和`java.util....
Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许我们通过模式匹配来查找、替换或分割文本。在Android开发中,正则表达式尤其重要,因为它们可以帮助我们验证用户输入、处理文本数据或者进行复杂的...
正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索。在C#编程语言中,正则表达式被广泛应用于数据验证、文本提取、格式转换等多个场景。本项目提供了一个C#编写的正则表达式测试工具,包含完整...
3. **正则表达式工具的功能** - 自动化转换:工具能自动识别输入内容并生成相应的正则表达式。 - 模式测试:提供测试区域,用户可以输入文本,检查转换后的正则表达式是否有效。 - 反向匹配:从目标字符串出发,...
该工具类使用了`java.util.regex`包中的`Pattern`和`Matcher`类来完成正则表达式的编译和匹配工作。以下是几个重要的方法说明: - `isPositiveInteger`:验证是否为正整数。 - `isNegativeInteger`:验证是否为负...
Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许程序员通过模式匹配来查找、替换或分割文本。在Java中,正则表达式是通过`java.util.regex`包提供的API来实现的。本讲解将深入探讨Java正则表达式的...
Java正则表达式库是Java开发中不可或缺的一部分,它为开发者提供了一种强大的文本匹配工具。在Java中,正则表达式(Regular Expression)是一种模式匹配语言,用于处理字符串操作,如查找、替换或提取特定模式的数据...