public void postField( SessionContext ctx, FormInstance instance, String fieldname, ErrorMessages msgs, EventManager manager) { String id = (String) ctx.getRequestAttribute("ID"); if (id == null || id.trim().length() <= 0) { instance.setHTMLShowMessage("错误", "必须输入身份证号码!"); return; } id = id.trim(); if (id.length() != 15 && id.length() != 18) { instance.setHTMLShowMessage("错误", "身份证号码长度必须为15或18位!"); instance.setHTMLFieldValue("ID", ""); return; } if (id.length() == 15) { if (util.isDate("19" + id.substring(6, 12)) == false) { instance.setHTMLShowMessage("警告", "证件号码日期格式非法!"); return; } } else { if (id.charAt(17) == 'x') { instance.setHTMLShowMessage("错误", "证件号码的校验位不能是小写x!"); instance.setHTMLFieldValue("ID", ""); return; } if (util.isDate(id.substring(6, 14)) == false) { instance.setHTMLShowMessage("警告", "证件号码日期格式非法!"); return; } int iS = 0, iY; int iW[] = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}; String szVerCode = "10X98765432"; int i; for (i = 0; i < 17; i++) { iS += (int) (id.charAt(i) - '0') * iW[i]; } iY = iS % 11; if (szVerCode.charAt(iY) != id.charAt(i)) { instance.setHTMLShowMessage("警告", "身份证号码校验码错误!"); return; } } // String year = null; // if(id.length() == 15) // year = "19" + id.substring(6,8); // else // year = id.substring(6,10); // int iYear; // // try // { // iYear = Integer.parseInt(year); // } // catch(Exception e) // { // instance.setHTMLShowMessage("警告","身份证号码生日格式错误!"); // return; // } // // if(iYear <= 1900) // { // instance.setHTMLShowMessage("警告","身份证号码生日早于1900年!"); // return; // } return; }