- 呵呵 今天还有一点时间整理了一下java的通过验证格式 以备以后使用
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- public class ValidateUtil
- {
- // 保存每个月的天数
- private static final int[] DAYS_OF_MONTH = { 31, 28, 31, 30, 31, 30, 31,
- 31, 30, 31, 30, 31 };
- // 日历的起始年份
- public static final int START_YEAR = 1900;
- // 日历的结束年份
- public static final int END_YEAR = 2100;
- private static final String ZERO_STRING = "0";
- /***************************************************************************
- * 匹配英文字母 或者汉字 如"Shenzhen" "深圳"
- *
- * @param str 待匹配字符串
- * @return true 匹配通过 false 匹配失败
- */
- public static boolean isValidEnglishOrChinese(String str)
- {
- // 1、[A-Za-z]* 英文字母的匹配 一次或者多次
- // 2、[\u4E00-\u9FA5]* 汉字匹配 一次或者多次
- boolean flag = false;
- Pattern p = Pattern.compile("^[A-Za-z]*|[\u4E00-\u9FA5]*$");
- if (str != null)
- {
- Matcher match = p.matcher(str);
- flag = match.matches();
- }
- return flag;
- }
- /***************************************************************************
- * 匹配英中文姓名 与英文名 英文名格式为:姓与名之间用/隔开 例如Green/Jim King
- *
- * @param str 待匹配字符串
- * @return true 匹配通过 false 匹配失败
- */
- public static boolean isValidName(String str)
- {
- // 1、[A-Za-z]* 英文字母的匹配 一次或者多次
- // 2、[\u4E00-\u9FA5]* 汉字匹配 一次或者多次
- boolean flag = false;
- Pattern p = Pattern
- .compile("^([A-Za-z]+[\\/][A-Za-z]+)|[\u4E00-\u9FA5]*");
- if (str != null)
- {
- Matcher match = p.matcher(str);
- flag = match.matches();
- }
- return flag;
- }
- /***************************************************************************
- * 验证身份证号码 15位 18位
- *
- * @param cardStr 身份证字符串
- * @return true 合法 false 不合法
- */
- public static boolean isValidIdCard(String cardStr)
- {
- boolean flag = false;
- Pattern pEighteen = Pattern.compile("^\\d{17}(\\d{1}|x)$");// 18位身份证号码
- // 包括末尾是“x”的校验码
- Pattern pFifteen = Pattern.compile("^\\d{15}$");// 15位身份证号码
- if (cardStr != null)
- {
- if (pEighteen.matcher(cardStr).matches()) // 18位身份证号码验证通过
- {
- if (isValidDate(cardStr.substring(6, 14)))// 18位身份证号码
- // 出生年月日验证通过
- {
- flag = true;
- }
- }
- if (pFifteen.matcher(cardStr).matches()) // 15位身份证号码验证通过
- {
- if (isValidDay(cardStr.substring(6, 12))) // 15位身份证出身年月日的验证
- {
- flag = true;
- }
- }
- }
- return flag;
- }
- /***************************************************************************
- * 正整数验证
- *
- * @param str 待验证字符串
- * @return true 验证通过 false 验证失败
- */
- public static boolean isValidInteger(String str)
- {
- boolean flag =
Java 通用的验证类
最新推荐文章于 2024-08-19 18:04:30 发布
这个Java类提供了多种字符串验证方法,包括验证身份证、姓名、整数、日期、电话号码、邮箱、时间等,确保输入的数据符合特定格式。
摘要由CSDN通过智能技术生成