Java一些常用验证整理
2012-09-10 00:00
337 查看
废话不多说,直接上代码吧:
注:手机号码验证中由于移动、联通、电信手机号段今后可能增加、这里只做了粗略验证,请根据实际更改。
如有不足之处,欢迎各位批评指正!谢谢!
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Validate { /** * 验证邮箱是否合法 * @param emailStr:要验证的邮箱 * @return true:合法 | false:不合法 */ public static boolean isValidEmail(String validateStr){ String regex = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"; Pattern pattern = Pattern.compile(regex,Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(validateStr); return matcher.matches(); } /** * 验证是否是数字 * @param validateStr 要验证的字符串 * @return true:合法 | false:非法 * */ public static boolean isNumber(String validateStr){ String regex = "[0-9]+(.[0-9]+)?"; Pattern pattern = Pattern.compile(regex,Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(validateStr); return matcher.matches(); } /** * 验证是否是非负整数 * @param validateStr 要验证的字符串 * @return true:合法 | false:非法 * */ public static boolean isNonnegativeIngeger(String validateStr){ String regex = "^\\d+$"; Pattern pattern = Pattern.compile(regex,Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(validateStr); return matcher.matches(); } /** * 验证是否是非负浮点数 * @param validateStr 要验证的字符串 * @return true:合法 | false:非法 * */ public static boolean isNonnegativeFloat(String validateStr){ String regex = "^\\d+(\\.\\d+)?$"; Pattern pattern = Pattern.compile(regex,Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(validateStr); return matcher.matches(); } /** * 字母数字下划线验证 * @param validateStr 要验证的字符串 * @return true:合法 | false:非法 */ public static boolean isNumLineCode(String validateStr){ String regex = "[0-9A-Za-z_]*"; Pattern pattern = Pattern.compile(regex,Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(validateStr); return matcher.matches(); } /** * 日期合法性验证 * @param validateStr 要验证的字符串(支持yyyy/MM/dd HH:mm:ss、yyyy/MM/dd、yyyy-MM-dd HH:mm:ss和yyyy-MM-dd格式) * @return true:合法 | false:非法 */ public static boolean isValidDate(String validateStr){ SimpleDateFormat format = null; if(validateStr.indexOf("/")>0){ format = new SimpleDateFormat(validateStr.indexOf(":")>0?"yyyy/MM/dd HH:mm:ss":"yyyy/MM/dd"); } if(validateStr.indexOf("-")>0){ format = new SimpleDateFormat(validateStr.indexOf(":")>0?"yyyy-MM-dd HH:mm:ss":"yyyy-MM-dd"); } try { Date date = format.parse(validateStr); date.toString(); } catch (ParseException e) { System.out.println("格式错误!"); e.printStackTrace(); return false; } String regex = "^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\\s(((0?[0-9])|([1-2][0-9]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$"; Pattern pattern = Pattern.compile(regex,Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(validateStr); return matcher.matches(); } /** * 电话(座机)号码验证 * @param validateStr要验证的字符串 * @return true:合法 | false:非法 */ public static boolean isTelephonNum(String validateStr){ // 1、\\d{3,4} 区号 3位或者4位的匹配 // 2、\\d{7,8} 号码 7味或者8位的匹配 // 3、(\\d{3,4})? 分机号3位或者4位的匹配 ?可匹配一次或者两次 String regex = "^\\d{3,4}\\d{7,8}(\\d{3,4})?$"; Pattern pattern = Pattern.compile(regex,Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(validateStr); return matcher.matches(); } /** * 手机号码验证 * @param validateStr 电话号码字符串 * @return true:合法 | false:非法 */ public static boolean isMobilePhoneNo(String validateStr){ String regex = "^((13[0-9])|(15[0356789])|(18[03679]))\\d{8}$";//请根据实际修改 Pattern pattern = Pattern.compile(regex,Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(validateStr); return matcher.matches(); } }
注:手机号码验证中由于移动、联通、电信手机号段今后可能增加、这里只做了粗略验证,请根据实际更改。
如有不足之处,欢迎各位批评指正!谢谢!
相关文章推荐
- 整理收集的一些常用java工具类
- Java常用的一些正则表达式验证
- 整理的一些常用的Java日期时间上面的操作
- 整理的一些常用的js表单验证
- 工作之余,整理了一下平时处理数据的一些常用的,简单的方法。希望对学习JAVA的朋友有点帮助
- SSH框架常用的一些菜单处理架构整理(前端)。
- java一些常用代码的分享
- 整理了一些asp初学者常用的代码 (1)
- Java常用正则表达式验证工具类RegexUtils.java
- JQuery入门常用的一些方法、表单操作、正则验证
- 一些表单验证常用的正则表达式收集
- 工作中常用到的一些java工具类
- Java常用数据库连接池【整理】
- 整理的一些Java基础概念
- 一些可以参考的常用工具库类整理
- java中一些常用的英语
- 整理一些常用的正则表达式
- 一些非常有用的JAVA常用方法(1)
- JAVA常用的一些排序算法
- 防止java反编译的一些常用方法