具体验证身份证号码规则和姓名(汉字)的java代码

您所在的位置:网站首页 java判断身份证号码是否重复 具体验证身份证号码规则和姓名(汉字)的java代码

具体验证身份证号码规则和姓名(汉字)的java代码

#具体验证身份证号码规则和姓名(汉字)的java代码| 来源: 网络整理| 查看: 265

一、验证汉字的正則表達式

 /** 是否是汉字的正则 */  private String regexIsHanZi = "[\\u4e00-\\u9fa5]+";   * @param str要匹配的字符串    * @param reg 正则  public static boolean matchRegular(String str, String reg) {   Pattern pattern = Pattern.compile(reg);   Matcher matcher = pattern.matcher(str);   return matcher.matches();  } 二、验证身份证号码本以为简单写个正則表達式就OK了。  /** 匹配身份证号位数的正则 */    String regxId = "([0-9]{17}([0-9]|X))|([0-9]{15})"; 原来还有更精确的规则匹配例如以下,网上学习的,备份使用了。 尊重别人劳动成果,原文:http://blog.csdn.net/suncaoyong/article/details/8647037 import java.text.SimpleDateFormat; import java.util.Date; /**  * 验证身份证号码 身份证号码, 能够解析身份证号码的各个字段,以及验证身份证号码是否有效; 身份证号码构成:6位地址编码+8位生日+3位顺序码+1位校验码  *  * @ClassName: CheckIdCard  * @Description:  * @author 刘昭  * @date 2013-1-4 上午11:06:09  *  */ public class CheckId {  private String cardNumber; // 完整的身份证号码  private Boolean cacheValidateResult = null; // 缓存身份证是否有效,由于验证有效性使用频繁且计算复杂  private Date cacheBirthDate = null; // 缓存出生日期,由于出生日期使用频繁且计算复杂  private final static String BIRTH_DATE_FORMAT = "yyyyMMdd"; // 身份证号码中的出生日期的格式  private final static Date MINIMAL_BIRTH_DATE = new Date(-2209017600000L); // 身份证的最小出生日期,1900年1月1日  private final static int NEW_CARD_NUMBER_LENGTH = 18;  private final static int OLD_CARD_NUMBER_LENGTH = 15;  private final static char[] VERIFY_CODE = { '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2' }; // 18位身份证中最后一位校验码  private final static int[] VERIFY_CODE_WEIGHT = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };// 18位身份证中,各个数字的生成校验码时的权值  /**   * @Description:false错误。true正确   * @return   * @author: LiuZhao   * @date:2014年11月18日   */  public boolean validate() {   if (null == cacheValidateResult) {    boolean result = true;    result = result && (null != cardNumber); // 身份证号不能为空    result = result && NEW_CARD_NUMBER_LENGTH == cardNumber.length(); // 身份证号长度是18(新证)    // 身份证号的前17位必须是阿拉伯数字    for (int i = 0; result && i < NEW_CARD_NUMBER_LENGTH - 1; i++) {     char ch = cardNumber.charAt(i);     result = result && ch >= '0' && ch


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3