您的位置:首页 > 编程语言 > Java开发

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();
}
}

注:手机号码验证中由于移动、联通、电信手机号段今后可能增加、这里只做了粗略验证,请根据实际更改。

如有不足之处,欢迎各位批评指正!谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息