- 浏览: 28240 次
- 性别:
- 来自: 北京
文章分类
最新评论
java正则通用验证参考:
package com.tool.util; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * * @author Jarvis * 90%的验证都调用了Regular方法 但是本类也可删除大部分方法 涉及到正则的判断都直接穿参数和正则表达式 * 但是为了方便业务类调用和有更直观的含义 建议不要这么做 * Pattern的matcher已经被同步synchronized 所以 此类的任何使用正则验证的方法都不需要同步 * */ public class validate { public validate() { } //------------------常量定义 /** * Email正则表达式=^/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*$ */ public static final String EMAIL = "^//w+([-+.]//w+)*@//w+([-.]//w+)*//.//w+([-.]//w+)*$"; /** * 电话号码正则表达式= (^(/d{2,4}[-_-—]?)?/d{3,8}([-_-—]?/d{3,8})?([-_-—]?/d{1,7})?$)|(^0?1[35]/d{9}$) */ public static final String PHONE = "(^(//d{2,4}[-_-—]?)?//d{3,8}([-_-—]?//d{3,8})?([-_-—]?//d{1,7})?$)|(^0?1[35]//d{9}$)" ; /** * 手机号码正则表达式=^(13[0-9]|15[0|3|6|7|8|9]|18[8|9])/d{8}$ */ public static final String MOBILE ="^(13[0-9]|15[0|3|6|7|8|9]|18[8|9])//d{8}$"; /** * 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 IPADDRESS = "((?:(?:25[0-5]|2[0-4]//d|[01]?//d?//d)//.){3}(?:25[0-5]|2[0-4]//d|[01]?//d?//d))"; /** * Integer正则表达式 ^-?(([1-9]/d*$)|0) */ public static final String INTEGER = "^-?(([1-9]//d*$)|0)"; /** * 正整数正则表达式 >=0 ^[1-9]/d*|0$ */ public static final String INTEGER_NEGATIVE = "^[1-9]//d*|0$"; /** * 负整数正则表达式 <=0 ^-[1-9]/d*|0$ */ public static final String INTEGER_POSITIVE = "^-[1-9]//d*|0$"; /** * Double正则表达式 ^-?([1-9]/d*/./d*|0/./d*[1-9]/d*|0?/.0+|0)$ */ public static final String DOUBLE ="^-?([1-9]//d*//.//d*|0//.//d*[1-9]//d*|0?//.0+|0)$"; /** * 正Double正则表达式 >=0 ^[1-9]/d*/./d*|0/./d*[1-9]/d*|0?/.0+|0$ */ public static final String DOUBLE_NEGATIVE ="^[1-9]//d*//.//d*|0//.//d*[1-9]//d*|0?//.0+|0$"; /** * 负Double正则表达式 <= 0 ^(-([1-9]/d*/./d*|0/./d*[1-9]/d*))|0?/.0+|0$ */ public static final String DOUBLE_POSITIVE ="^(-([1-9]//d*//.//d*|0//.//d*[1-9]//d*))|0?//.0+|0$"; /** * 年龄正则表达式 ^(?:[1-9][0-9]?|1[01][0-9]|120)$ 匹配0-120岁 */ public static final String AGE="^(?:[1-9][0-9]?|1[01][0-9]|120)$"; /** * 邮编正则表达式 [1-9]/d{5}(?!/d) 国内6位邮编 */ public static final String CODE="[1-9]//d{5}(?!//d)"; /** * 匹配由数字、26个英文字母或者下划线组成的字符串 ^/w+$ */ public static final String STR_ENG_NUM_="^//w+$"; /** * 匹配由数字和26个英文字母组成的字符串 ^[A-Za-z0-9]+$ */ public static final String STR_ENG_NUM="^//w+$"; /** * 匹配由26个英文字母组成的字符串 ^[A-Za-z]+$ */ public static final String STR_ENG="^[A-Za-z]+$"; /** * 匹配中文字符 ^[/u0391-/uFFE5]+$ */ public static final String STR_CHINA="^[/u0391-/uFFE5]+$"; /** * 过滤特殊字符串正则 * regEx="[`~!@#$%^&*()+=|{}':;',//[//].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]"; */ public static final String STR_SPECIAL="[`~!@#$%^&*()+=|{}':;',//[//].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]"; /** *只能输英文 数字 中文 ^[a-zA-Z0-9/u4e00-/u9fa5]+$ */ public static final String STR_ENG_CHA_NUM="^[a-zA-Z0-9/u4e00-/u9fa5]+$"; /** * */ /*** * 日期正则 支持: * YYYY-MM-DD * YYYY/MM/DD * YYYY_MM_DD * YYYYMMDD * YYYY.MM.DD的形式 */ public static final String DATE_ALL="((^((1[8-9]//d{2})|([2-9]//d{3}))([-/////._]?)(10|12|0?[13578])([-/////._]?)(3[01]|[12][0-9]|0?[1-9])$)" + "|(^((1[8-9]//d{2})|([2-9]//d{3}))([-/////._]?)(11|0?[469])([-/////._]?)(30|[12][0-9]|0?[1-9])$)" + "|(^((1[8-9]//d{2})|([2-9]//d{3}))([-/////._]?)(0?2)([-/////._]?)(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)([-/////._]?)(0?2)([-/////._]?)(29)$)|(^([3579][26]00)" + "([-/////._]?)(0?2)([-/////._]?)(29)$)" + "|(^([1][89][0][48])([-/////._]?)(0?2)([-/////._]?)(29)$)|(^([2-9][0-9][0][48])([-/////._]?)" + "(0?2)([-/////._]?)(29)$)" + "|(^([1][89][2468][048])([-/////._]?)(0?2)([-/////._]?)(29)$)|(^([2-9][0-9][2468][048])([-/////._]?)(0?2)" + "([-/////._]?)(29)$)|(^([1][89][13579][26])([-/////._]?)(0?2)([-/////._]?)(29)$)|" + "(^([2-9][0-9][13579][26])([-/////._]?)(0?2)([-/////._]?)(29)$))"; /** * URL正则表达式 * 匹配 http www ftp */ public static final String URL = "^(http|www|ftp|)?(://)?(//w+(-//w+)*)(//.(//w+(-//w+)*))*((://d+)?)(/(//w+(-//w+)*))*(//.?(//w)*)(//?)?" + "(((//w*%)*(//w*//?)*(//w*:)*(//w*//+)*(//w*//.)*(//w*&)*(//w*-)*(//w*=)*(//w*%)*(//w*//?)*" + "(//w*:)*(//w*//+)*(//w*//.)*" + "(//w*&)*(//w*-)*(//w*=)*)*(//w*)*)$"; /** * 身份证正则表达式 */ public static final String IDCARD="((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})" + "(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}" + "[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))"; /** * 1.匹配科学计数 e或者E必须出现有且只有一次 不含Dd * 正则 ^[-+]?(/d+(/./d*)?|/./d+)([eE]([-+]?([012]?/d{1,2}|30[0-7])|-3([01]?[4-9]|[012]?[0-3])))$ */ public final static String SCIENTIFIC_A ="^[-+]?(//d+(//.//d*)?|//.//d+)([eE]([-+]?([012]?//d{1,2}|30[0-7])|-3([01]?[4-9]|[012]?[0-3])))$"; /** * 2.匹配科学计数 e或者E必须出现有且只有一次 结尾包含Dd * 正则 ^[-+]?(/d+(/./d*)?|/./d+)([eE]([-+]?([012]?/d{1,2}|30[0-7])|-3([01]?[4-9]|[012]?[0-3])))[dD]?$ */ public final static String SCIENTIFIC_B ="^[-+]?(//d+(//.//d*)?|//.//d+)([eE]([-+]?([012]?//d{1,2}|30[0-7])|-3([01]?[4-9]|[012]?[0-3])))[dD]?$"; /** * 3.匹配科学计数 是否含有E或者e都通过 结尾含有Dd的也通过(针对Double类型) * 正则 ^[-+]?(/d+(/./d*)?|/./d+)([eE]([-+]?([012]?/d{1,2}|30[0-7])|-3([01]?[4-9]|[012]?[0-3])))?[dD]?$ */ public final static String SCIENTIFIC_C ="^[-+]?(//d+(//.//d*)?|//.//d+)([eE]([-+]?([012]?//d{1,2}|30[0-7])|-3([01]?[4-9]|[012]?[0-3])))?[dD]?$"; /** * 4.匹配科学计数 是否含有E或者e都通过 结尾不含Dd * 正则 ^[-+]?(/d+(/./d*)?|/./d+)([eE]([-+]?([012]?/d{1,2}|30[0-7])|-3([01]?[4-9]|[012]?[0-3])))?$ */ public final static String SCIENTIFIC_D ="^[-+]?(//d+(//.//d*)?|//.//d+)([eE]([-+]?([012]?//d{1,2}|30[0-7])|-3([01]?[4-9]|[012]?[0-3])))?$"; ////------------------验证方法 /** * 判断字段是否为空 符合返回ture * @param str * @return boolean */ public static synchronized boolean StrisNull(String str) { return null == str || str.trim().length() <= 0 ? true : false ; } /** * 判断字段是非空 符合返回ture * @param str * @return boolean */ public static boolean StrNotNull(String str) { return !StrisNull(str) ; } /** * 字符串null转空 * @param str * @return boolean */ public static String nulltoStr(String str) { return StrisNull(str)?"":str; } /** * 字符串null赋值默认值 * @param str 目标字符串 * @param defaut 默认值 * @return String */ public static String nulltoStr(String str,String defaut) { return StrisNull(str)?defaut:str; } /** * 判断字段是否为Email 符合返回ture * @param str * @return boolean */ public static boolean isEmail(String str) { return Regular(str,EMAIL); } /** * 判断是否为电话号码 符合返回ture * @param str * @return boolean */ public static boolean isPhone(String str) { return Regular(str,PHONE); } /** * 判断是否为手机号码 符合返回ture * @param str * @return boolean */ public static boolean isMobile(String str) { return Regular(str,MOBILE); } /** * 判断是否为Url 符合返回ture * @param str * @return boolean */ public static boolean isUrl(String str) { return Regular(str,URL); } /** * 判断是否为IP地址 符合返回ture * @param str * @return boolean */ public static boolean isIpaddress(String str) { return Regular(str,IPADDRESS); } /** * 判断字段是否为数字 正负整数 正负浮点数 符合返回ture * @param str * @return boolean */ public static boolean isNumber(String str) { return Regular(str,DOUBLE); } /** * 判断字段是否为INTEGER 符合返回ture * @param str * @return boolean */ public static boolean isInteger(String str) { return Regular(str,INTEGER); } /** * 判断字段是否为正整数正则表达式 >=0 符合返回ture * @param str * @return boolean */ public static boolean isINTEGER_NEGATIVE(String str) { return Regular(str,INTEGER_NEGATIVE); } /** * 判断字段是否为负整数正则表达式 <=0 符合返回ture * @param str * @return boolean */ public static boolean isINTEGER_POSITIVE(String str) { return Regular(str,INTEGER_POSITIVE); } /** * 判断字段是否为DOUBLE 符合返回ture * @param str * @return boolean */ public static boolean isDouble(String str) { return Regular(str,DOUBLE); } /** * 判断字段是否为正浮点数正则表达式 >=0 符合返回ture * @param str * @return boolean */ public static boolean isDOUBLE_NEGATIVE(String str) { return Regular(str,DOUBLE_NEGATIVE); } /** * 判断字段是否为负浮点数正则表达式 <=0 符合返回ture * @param str * @return boolean */ public static boolean isDOUBLE_POSITIVE(String str) { return Regular(str,DOUBLE_POSITIVE); } /** * 判断字段是否为日期 符合返回ture * @param str * @return boolean */ public static boolean isDate(String str) { return Regular(str,DATE_ALL); } /** * 判断字段是否为年龄 符合返回ture * @param str * @return boolean */ public static boolean isAge(String str) { return Regular(str,AGE) ; } /** * 判断字段是否超长 * 字串为空返回fasle, 超过长度{leng}返回ture 反之返回false * @param str * @param leng * @return boolean */ public static boolean isLengOut(String str,int leng) { return StrisNull(str)?false:str.trim().length() > leng ; } /** * 判断字段是否为身份证 符合返回ture * @param str * @return boolean */ public static boolean isIdCard(String str) { if(StrisNull(str)) return false ; if(str.trim().length() == 15 || str.trim().length() == 18) { return Regular(str,IDCARD); }else { return false ; } } /** * 判断字段是否为邮编 符合返回ture * @param str * @return boolean */ public static boolean isCode(String str) { return Regular(str,CODE) ; } /** * 判断字符串是不是全部是汉字 * @param str * @return boolean */ public static boolean isChina(String str) { return Regular(str,STR_CHINA) ; } /** * 判断字符串是不是全部是英文字母 * @param str * @return boolean */ public static boolean isEnglish(String str) { return Regular(str,STR_ENG) ; } /** * 判断字符串是不是全部是英文字母+数字 * @param str * @return boolean */ public static boolean isENG_NUM(String str) { return Regular(str,STR_ENG_NUM) ; } /** * 判断字符串是不是全部是英文字母+数字+下划线 * @param str * @return boolean */ public static boolean isENG_NUM_(String str) { return Regular(str,STR_ENG_NUM_) ; } /** * 过滤特殊字符串 返回过滤后的字符串 * @param str * @return boolean */ public static String filterStr(String str) { Pattern p = Pattern.compile(STR_SPECIAL); Matcher m = p.matcher(str); return m.replaceAll("").trim(); } /** * 匹配是否符合正则表达式pattern 匹配返回true * @param str 匹配的字符串 * @param pattern 匹配模式 * @return boolean */ private static boolean Regular(String str,String pattern){ System.out.println("pattern="+pattern); if(null == str || str.trim().length()<=0) return false; Pattern p = Pattern.compile(pattern); Matcher m = p.matcher(str); return m.matches(); } /** * 判断是不是科学计数法 如果是 返回true * 匹配科学计数 e或者E必须出现有且只有一次 结尾不含D * 匹配模式可参考本类定义的 SCIENTIFIC_A,SCIENTIFIC_B,SCIENTIFIC_C,SCIENTIFIC_D * 若判断为其他模式可调用 Regular(String str,String pattern)方法 * @param str 科学计数字符串 * @return boolean */ public static boolean isScientific(String str){ if(StrisNull(str)) return false; return Regular(str,validate.SCIENTIFIC_A); } public static void main(String[] args) { // TODO Auto-generated method stub } }
相关推荐
java使用正则表达式进行校验验证,主要使用了Pattern和Matcher类,直接main方法运行就可以,亲测有效
java 正则表达式工具类,验证手机号码 身份证 email
JAVA正则表达式JAVA正则表达式JAVA正则表达式
java正则表达式验证IP地址
正则表达式可以用来:(1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址。(2)用来查找字符串,从一个长的文本中查找符合指定特征的字符串,比查找固定字符串更加灵活方便。(3)用来替换,比普通的...
包括后台java正则验证及前台js验证 请输入一个数字(精确到小数点后两位): fdsa54325.54 fdsa54325.54 false 请输入一个数字(金额不超过万亿精确到小数点后两位) 请输入一个数字(精确到小数点后两位): ...
Java的正则流派... 366 Java对\p{…}和\P{…}的支持... 369 Unicode行终结符... 370 使用java.util.regex. 371 The Pattern.compile() Factory. 372 Pattern的matcher方法... 373 Matcher对象... 373 应用...
java 验证手机号码 身份证 email url 以及其他常用的正则表达式的验证方法。
java 使用正则表达式验证电话号码的格式 java 使用正则表达式验证电话号码的格式
java正则验证电话,手机,邮箱,日期,金额,很实用
正则表达式 Java 验证工具正则表达式 Java 验证工具
Java正则表达式[web输入验证<身份证,邮箱,URL,手机号等>]
用来学习正则表达式的小工具(JAVA版的) 可以及时的测试自己写的正则表达式 Welcome to id0096.cn
非常好用的正则表达式工具,适用于正则表达式编写,验证,修改等,提供一个csdn下载地址, 非常好用的正则表达式工具,适用于正则表达式编写,验证,修改等,提供一个csdn下载地址
java实现用正则表达式的方法提取html中的信息,可以提取标题,正文,链接等。经过运行,没问题的
各种正则验证.正则表达式,多种的验证样式。。jsp
正则表达式 实例
这是一个简单的正则表达式应用jar包,通过调用其内部方法可实现java的一系列验证,提取和清洗的方法,内附帮助文档,使用非常简单,希望可以为广大编程爱好者编程提供方便,欢迎下载!
正则表达式的合集,包括电话号码,邮箱验证,手机号码验证等等...开发时候拿来用非常方便!