本文共 1752 字,大约阅读时间需要 5 分钟。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 用户校验数据格式
*
*/
public class ValidateUtil {
/**
* 验证是否为手机号
* @param mobileNo
* @return
*/
public static boolean isMobileNo(String mobileNo) {
// 1、(13[0-9])|(15[02789])|(18[679])|(17[0-9]) 13段 或者15段 18段17段的匹配
// 2、\\d{8} 整数出现8次
boolean flag = false;
Pattern p = Pattern.compile("^((13[0-9])|(15[0-9])|(18[0-9])|(17[0-9]))\\d{8}$");
Matcher match = p.matcher(mobileNo);
if (mobileNo != null && !"".equals(mobileNo.trim())) {
flag = match.matches();
}
return flag;
}
/**
* 验证是否为正确的邮箱号
* @param email
* @return
*/
public static boolean isEmail(String email) {
// 1、\\w+表示@之前至少要输入一个匹配字母或数字或下划线 \\w 单词字符:[a-zA-Z_0-9]
// 2、(\\w+\\.)表示域名. 如新浪邮箱域名是sina.com.cn
// {1,3}表示可以出现一次或两次或者三次.
String reg = "\\w+@(\\w+\\.){1,3}\\w+";
Pattern pattern = Pattern.compile(reg);
boolean flag = false;
if (email != null && !"".equals(email)) {
Matcher matcher = pattern.matcher(email);
flag = matcher.matches();
}
return flag;
}
/**
* 利用正则表达式判断字符串是否是数字
* @param str
* @return
*/
public static boolean isNumeric(String str){
boolean flag = false;
Pattern pattern = Pattern.compile("[0-9]*");
if (str != null && !"".equals(str)) {
Matcher isNum = pattern.matcher(str);
flag = isNum.matches();
}
return flag;
}
/**
* 检验 日期 的格式是否正确 yyyyMMdd
*/
public static boolean isYYYYMMDDTime(String time){
boolean flag = false;
if (null == time || "".equals(time)) {
return flag;
}
if (time.length() != 8) {
return flag;
}
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
//设置成false,避免宽松的格式校验
sdf.setLenient(false);
Date d = sdf.parse(time);
flag = true;
} catch (ParseException e) {
flag = false;
}
return flag ;
}
}
转载地址:http://sgzct.baihongyu.com/