正则表达式 对于身份证号码的正则表达式是怎样验证其有效性? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //身份证正则表达式(15位) isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/; //身份证正则表达式(18位) isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/; 给你一个方法吧 // '---此函数用来检验身份证号码的正确性(15位或18位都可以) // '---此函数的参数:e为输入要检验的身份证号码,ee返回正确的身份证号码,如果输入的身份证号码不正确,则ee返回空值,Birth返回出生日期 // '---此函数带有返回值,输入要检验的身份证号码正确,则返回True,否则返回False // 返回:=0表示 正确 // =1表示 身份证号码不是15位或18位 // =2表示 身份证除最后一位外,必须为数字! // =3表示 身份证的出生日期不正确 // =4表示 身份证号码输入错误 public static int checkCardID(String e) { String arrVerifyCode[]; String wi[]; // String checker[]; String str; String ai = null; // '---身份证的校验码(要记住,不能写错) str = "1,0,X,9,8,7,6,5,4,3,2"; arrVerifyCode = str.split(","); str = "7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2"; wi = str.split(","); str = "1,9,8,7,6,5,4,3,2,1,1"; // checker = str.split(","); e = e.trim(); // '---判断身份证号码的长度为15位或18位 if ((e.length() < 15) || (e.length() == 16) || (e.length() == 17) || (e.length() > 18)) { return 1; } if (18 == e.length()) { ai = e.substring(0, 17); } else if (15 == e.length()) { ai = e; ai = ai.substring(0, 6) + "19" + ai.substring(6, 15); } // '---判断身份证除最后一位外,必须为数字 if (!isNumberic(ai)) { // MsgBox "身份证除最后一位外,必须为数字!" return 2; } IdCard : /^\d{15}(\d{2}[A-Za-z0-9])?$/Email : /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,Phone : /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/,Mobile : /^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$/,Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^\"\"])*$/,IdCard : /^\d{15}(\d{2}[A-Za-z0-9])?$/,Currency : /^\d+(\.\d+)?$/,Number : /^\d+$/,Zip : /^[1-9]\d{5}$/,QQ : /^[1-9]\d{4,8}$/,Integer : /^[-\+]?\d+$/,Double : /^[-\+]?\d+(\.\d+)?$/,English : /^[A-Za-z]+$/,Chinese : /^[\u0391-\uFFE5]+$/,Username : /^[a-z]\w{3,}$/i,UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}\?\\\/\'\"]*)|.{0,5})$|\s/, xml命名空间问题() 泛型,为什么使用T而不使用Object 请教个hibernate的初级问题 JSF验证信息为何前面有一串代码 JAVA里的字符链表操作? bootstrap 小图标引用不了 可不可以将Struts的应用部署到resin下? 求助jsp+ejb+tomcat 关于XML的固有的标签? 新手求救,为什么我不能直接运行servlet大家帮帮忙 C调用JAVA出错,求指点 两台通过ISP上网的主机如何直接通信
isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
//身份证正则表达式(18位)
isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
// '---此函数的参数:e为输入要检验的身份证号码,ee返回正确的身份证号码,如果输入的身份证号码不正确,则ee返回空值,Birth返回出生日期
// '---此函数带有返回值,输入要检验的身份证号码正确,则返回True,否则返回False
// 返回:=0表示 正确
// =1表示 身份证号码不是15位或18位
// =2表示 身份证除最后一位外,必须为数字!
// =3表示 身份证的出生日期不正确
// =4表示 身份证号码输入错误
public static int checkCardID(String e) {
String arrVerifyCode[];
String wi[];
// String checker[];
String str;
String ai = null;
// '---身份证的校验码(要记住,不能写错)
str = "1,0,X,9,8,7,6,5,4,3,2";
arrVerifyCode = str.split(",");
str = "7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2";
wi = str.split(",");
str = "1,9,8,7,6,5,4,3,2,1,1";
// checker = str.split(",");
e = e.trim();
// '---判断身份证号码的长度为15位或18位
if ((e.length() < 15) || (e.length() == 16) || (e.length() == 17)
|| (e.length() > 18)) {
return 1;
}
if (18 == e.length()) {
ai = e.substring(0, 17);
} else if (15 == e.length()) {
ai = e;
ai = ai.substring(0, 6) + "19" + ai.substring(6, 15);
} // '---判断身份证除最后一位外,必须为数字
if (!isNumberic(ai)) {
// MsgBox "身份证除最后一位外,必须为数字!"
return 2;
}
Email : /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
Phone : /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/,
Mobile : /^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$/,
Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^\"\"])*$/,
IdCard : /^\d{15}(\d{2}[A-Za-z0-9])?$/,
Currency : /^\d+(\.\d+)?$/,
Number : /^\d+$/,
Zip : /^[1-9]\d{5}$/,
QQ : /^[1-9]\d{4,8}$/,
Integer : /^[-\+]?\d+$/,
Double : /^[-\+]?\d+(\.\d+)?$/,
English : /^[A-Za-z]+$/,
Chinese : /^[\u0391-\uFFE5]+$/,
Username : /^[a-z]\w{3,}$/i,
UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}\?\\\/\'\"]*)|.{0,5})$|\s/,