Java常用正则表达式验证类完整实例【邮箱、URL、IP、电话、身份证等】
本文实例讲述了Java常用正则表达式验证类。分享给大家供大家参考,具体如下:
packagecom.fsti.icop.util.regexp; importjava.util.regex.Matcher; importjava.util.regex.Pattern; publicfinalclassRegExpValidatorUtils{ /** *验证邮箱 * *@param待验证的字符串 *@return如果是符合的字符串,返回true,否则为false */ publicstaticbooleanisEmail(Stringstr){ Stringregex="^([\\w-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([\\w-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$"; returnmatch(regex,str); } /** *验证IP地址 * *@param待验证的字符串 *@return如果是符合格式的字符串,返回true,否则为false */ publicstaticbooleanisIP(Stringstr){ Stringnum="(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)"; Stringregex="^"+num+"\\."+num+"\\."+num+"\\."+num+"$"; returnmatch(regex,str); } /** *验证网址Url * *@param待验证的字符串 *@return如果是符合格式的字符串,返回true,否则为false */ publicstaticbooleanIsUrl(Stringstr){ Stringregex="http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w-./?%&=]*)?"; returnmatch(regex,str); } /** *验证电话号码 * *@param待验证的字符串 *@return如果是符合格式的字符串,返回true,否则为false */ publicstaticbooleanIsTelephone(Stringstr){ Stringregex="^(\\d{3,4}-)?\\d{6,8}$"; returnmatch(regex,str); } /** *验证输入密码条件(字符与数据同时出现) * *@param待验证的字符串 *@return如果是符合格式的字符串,返回true,否则为false */ publicstaticbooleanIsPassword(Stringstr){ Stringregex="[A-Za-z]+[0-9]"; returnmatch(regex,str); } /** *验证输入密码长度(6-18位) * *@param待验证的字符串 *@return如果是符合格式的字符串,返回true,否则为false */ publicstaticbooleanIsPasswLength(Stringstr){ Stringregex="^\\d{6,18}$"; returnmatch(regex,str); } /** *验证输入邮政编号 * *@param待验证的字符串 *@return如果是符合格式的字符串,返回true,否则为false */ publicstaticbooleanIsPostalcode(Stringstr){ Stringregex="^\\d{6}$"; returnmatch(regex,str); } /** *验证输入手机号码 * *@param待验证的字符串 *@return如果是符合格式的字符串,返回true,否则为false */ publicstaticbooleanIsHandset(Stringstr){ Stringregex="^[1]+[3,5]+\\d{9}$"; returnmatch(regex,str); } /** *验证输入身份证号 * *@param待验证的字符串 *@return如果是符合格式的字符串,返回true,否则为false */ publicstaticbooleanIsIDcard(Stringstr){ Stringregex="(^\\d{18}$)|(^\\d{15}$)"; returnmatch(regex,str); } /** *验证输入两位小数 * *@param待验证的字符串 *@return如果是符合格式的字符串,返回true,否则为false */ publicstaticbooleanIsDecimal(Stringstr){ Stringregex="^[0-9]+(.[0-9]{2})?$"; returnmatch(regex,str); } /** *验证输入一年的12个月 * *@param待验证的字符串 *@return如果是符合格式的字符串,返回true,否则为false */ publicstaticbooleanIsMonth(Stringstr){ Stringregex="^(0?[[1-9]|1[0-2])$"; returnmatch(regex,str); } /** *验证输入一个月的31天 * *@param待验证的字符串 *@return如果是符合格式的字符串,返回true,否则为false */ publicstaticbooleanIsDay(Stringstr){ Stringregex="^((0?[1-9])|((1|2)[0-9])|30|31)$"; returnmatch(regex,str); } /** *验证日期时间 * *@param待验证的字符串 *@return如果是符合网址格式的字符串,返回true,否则为false */ publicstaticbooleanisDate(Stringstr){ //严格验证时间格式的(匹配[2002-01-31],[1997-04-30], //[2004-01-01])不匹配([2002-01-32],[2003-02-29],[04-01-01]) //Stringregex= //"^((((19|20)(([02468][048])|([13579][26]))-02-29))|((20[0-9][0-9])|(19[0-9][0-9]))-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((01,3-9])|(1[0-2]))-(29|30)))))$"; //没加时间验证的YYYY-MM-DD //Stringregex= //"^((((1[6-9]|[2-9]\\d)\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$"; //加了时间验证的YYYY-MM-DD00:00:00 Stringregex="^((((1[6-9]|[2-9]\\d)\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))(20|21|22|23|[0-1]?\\d):[0-5]?\\d:[0-5]?\\d$"; returnmatch(regex,str); } /** *验证数字输入 * *@param待验证的字符串 *@return如果是符合格式的字符串,返回true,否则为false */ publicstaticbooleanIsNumber(Stringstr){ Stringregex="^[0-9]*$"; returnmatch(regex,str); } /** *验证非零的正整数 * *@param待验证的字符串 *@return如果是符合格式的字符串,返回true,否则为false */ publicstaticbooleanIsIntNumber(Stringstr){ Stringregex="^\\+?[1-9][0-9]*$"; returnmatch(regex,str); } /** *验证大写字母 * *@param待验证的字符串 *@return如果是符合格式的字符串,返回true,否则为false */ publicstaticbooleanIsUpChar(Stringstr){ Stringregex="^[A-Z]+$"; returnmatch(regex,str); } /** *验证小写字母 * *@param待验证的字符串 *@return如果是符合格式的字符串,返回true,否则为false */ publicstaticbooleanIsLowChar(Stringstr){ Stringregex="^[a-z]+$"; returnmatch(regex,str); } /** *验证验证输入字母 * *@param待验证的字符串 *@return如果是符合格式的字符串,返回true,否则为false */ publicstaticbooleanIsLetter(Stringstr){ Stringregex="^[A-Za-z]+$"; returnmatch(regex,str); } /** *验证验证输入汉字 * *@param待验证的字符串 *@return如果是符合格式的字符串,返回true,否则为false */ publicstaticbooleanIsChinese(Stringstr){ Stringregex="^[\u4e00-\u9fa5],{0,}$"; returnmatch(regex,str); } /** *验证验证输入字符串 * *@param待验证的字符串 *@return如果是符合格式的字符串,返回true,否则为false */ publicstaticbooleanIsLength(Stringstr){ Stringregex="^.{8,}$"; returnmatch(regex,str); } /** *@paramregex *正则表达式字符串 *@paramstr *要匹配的字符串 *@return如果str符合regex的正则表达式格式,返回true,否则返回false; */ privatestaticbooleanmatch(Stringregex,Stringstr){ Patternpattern=Pattern.compile(regex); Matchermatcher=pattern.matcher(str); returnmatcher.matches(); } //3.检查字符串重复出现的词 // //privatevoidbtnWord_Click(objectsender,EventArgse) //{ //System.Text.RegularExpressions.MatchCollectionmatches= //System.Text.RegularExpressions.Regex.Matches(label1.Text, // //@"\b(?\w+)\s+(\k )\b", //System.Text.RegularExpressions.RegexOptions.Compiled| //System.Text.RegularExpressions.RegexOptions.IgnoreCase); //if(matches.Count!=0) //{ //foreach(System.Text.RegularExpressions.Matchmatchinmatches) //{ //stringword=match.Groups["word"].Value; //MessageBox.Show(word.ToString(),"英文单词"); //} //} //else{MessageBox.Show("没有重复的单词");} // // //} // //4.替换字符串 // //privatevoidbutton1_Click(objectsender,EventArgse) //{ // //stringstrResult= //System.Text.RegularExpressions.Regex.Replace(textBox1.Text, //@"[A-Za-z]\*?",textBox2.Text); //MessageBox.Show("替换前字符:"+"\n"+textBox1.Text+"\n"+"替换的字符:"+"\n" //+textBox2.Text+"\n"+ // //"替换后的字符:"+"\n"+strResult,"替换"); // //} // //5.拆分字符串 // //privatevoidbutton1_Click(objectsender,EventArgse) //{ ////实例:甲025-8343243乙0755-2228382丙029-32983298389289328932893289丁 //foreach(stringsin //System.Text.RegularExpressions.Regex.Split(textBox1.Text,@"\d{3,4}-\d*")) //{ //textBox2.Text+=s;//依次输出"甲乙丙丁" //} // //} }
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript
正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg
更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java正则表达式技巧大全》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。