jquery 验证身份证
来源:互联网 发布:mac如何连接远程桌面 编辑:程序博客网 时间:2024/04/28 06:13
jQuery.validator.addMethod("isIdCard",
function(value, element) {
return this.optional(element) || isIdCard(value);
}, $.validator.format(" * 身份证号码不符合国定标准,请核对! "));
function isIdCard(person_id) {
var person_id = person_id;
//身份证的地区代码对照
var aCity = {
11 : "北京",
12 : "天津",
13 : "河北",
14 : "山西",
15 : "内蒙古",
21 : "辽宁",
22 : "吉林",
23 : "黑龙江",
31 : "上海",
32 : "江苏",
33 : "浙江",
34 : "安徽",
35 : "福建",
36 : "江西",
37 : "山东",
41 : "河南",
42 : "湖北",
43 : "湖南",
44 : "广东",
45 : "广西",
46 : "海南",
50 : "重庆",
51 : "四川",
52 : "贵州",
53 : "云南",
54 : "西藏",
61 : "陕西",
62 : "甘肃",
63 : "青海",
64 : "宁夏",
65 : "新疆",
71 : "台湾",
81 : "香港",
82 : "澳门",
91 : "国外"
};
//获取证件号码
// var person_id=person_id.value();
//合法性验证
var sum = 0;
//出生日期
var birthday;
//验证长度与格式规范性的正则
var pattern = new RegExp(
/(^\d{15}$)|(^\d{17}(\d|x|X)$)/i);
if (pattern.exec(person_id)) {
//验证身份证的合法性的正则
pattern = new RegExp(
/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/);
if (pattern.exec(person_id)) {
//获取15位证件号中的出生日期并转位正常日期
birthday = "19" + person_id.substring(6, 8)
+ "-" + person_id.substring(8, 10)
+ "-" + person_id.substring(10, 12);
} else {
person_id = person_id.replace(/x|X$/i, "a");
//获取18位证件号中的出生日期
birthday = person_id.substring(6, 10) + "-"
+ person_id.substring(10, 12) + "-"
+ person_id.substring(12, 14);
//校验18位身份证号码的合法性
for ( var i = 17; i >= 0; i--) {
sum += (Math.pow(2, i) % 11)
* parseInt(
person_id.charAt(17 - i),
11);
}
if (sum % 11 != 1) {
$(this).addClass("txtRequired");
//alert("身份证号码不符合国定标准,请核对!");
//$("#person_id").val("");
$("#birthday").val("")
return false;
}
}
//检测证件地区的合法性
if (aCity[parseInt(person_id.substring(0, 2))] == null) {
$(this).addClass("txtRequired");
// alert("证件地区未知,请核对!");
//$("#person_id").val("");
$("#birthday").val("");
return false;
}
var dateStr = new Date(birthday.replace(/-/g, "/"));
//alert(birthday +":"+(dateStr.getFullYear()+"-"+ Append_zore(dateStr.getMonth()+1)+"-"+ Append_zore(dateStr.getDate())))
if (birthday != (dateStr.getFullYear() + "-"
+ Append_zore(dateStr.getMonth() + 1) + "-" + Append_zore(dateStr
.getDate()))) {
$(this).addClass("txtRequired");
// alert("证件出生日期非法!");
//$("#person_id").val("");
$("#birthday").val("");
return false;
}
$(this).removeClass("txtRequired");
$("#birthday").val(birthday);
} else {
$(this).addClass("txtRequired");
// alert("证件号码格式非法!");
//$("#person_id").val("");
$("#birthday").val("")
return false;
}
return true;
}
function Append_zore(temp) {
if (temp < 10) {
return "0" + temp;
} else {
return temp;
}
}
function(value, element) {
return this.optional(element) || isIdCard(value);
}, $.validator.format(" * 身份证号码不符合国定标准,请核对! "));
function isIdCard(person_id) {
var person_id = person_id;
//身份证的地区代码对照
var aCity = {
11 : "北京",
12 : "天津",
13 : "河北",
14 : "山西",
15 : "内蒙古",
21 : "辽宁",
22 : "吉林",
23 : "黑龙江",
31 : "上海",
32 : "江苏",
33 : "浙江",
34 : "安徽",
35 : "福建",
36 : "江西",
37 : "山东",
41 : "河南",
42 : "湖北",
43 : "湖南",
44 : "广东",
45 : "广西",
46 : "海南",
50 : "重庆",
51 : "四川",
52 : "贵州",
53 : "云南",
54 : "西藏",
61 : "陕西",
62 : "甘肃",
63 : "青海",
64 : "宁夏",
65 : "新疆",
71 : "台湾",
81 : "香港",
82 : "澳门",
91 : "国外"
};
//获取证件号码
// var person_id=person_id.value();
//合法性验证
var sum = 0;
//出生日期
var birthday;
//验证长度与格式规范性的正则
var pattern = new RegExp(
/(^\d{15}$)|(^\d{17}(\d|x|X)$)/i);
if (pattern.exec(person_id)) {
//验证身份证的合法性的正则
pattern = new RegExp(
/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/);
if (pattern.exec(person_id)) {
//获取15位证件号中的出生日期并转位正常日期
birthday = "19" + person_id.substring(6, 8)
+ "-" + person_id.substring(8, 10)
+ "-" + person_id.substring(10, 12);
} else {
person_id = person_id.replace(/x|X$/i, "a");
//获取18位证件号中的出生日期
birthday = person_id.substring(6, 10) + "-"
+ person_id.substring(10, 12) + "-"
+ person_id.substring(12, 14);
//校验18位身份证号码的合法性
for ( var i = 17; i >= 0; i--) {
sum += (Math.pow(2, i) % 11)
* parseInt(
person_id.charAt(17 - i),
11);
}
if (sum % 11 != 1) {
$(this).addClass("txtRequired");
//alert("身份证号码不符合国定标准,请核对!");
//$("#person_id").val("");
$("#birthday").val("")
return false;
}
}
//检测证件地区的合法性
if (aCity[parseInt(person_id.substring(0, 2))] == null) {
$(this).addClass("txtRequired");
// alert("证件地区未知,请核对!");
//$("#person_id").val("");
$("#birthday").val("");
return false;
}
var dateStr = new Date(birthday.replace(/-/g, "/"));
//alert(birthday +":"+(dateStr.getFullYear()+"-"+ Append_zore(dateStr.getMonth()+1)+"-"+ Append_zore(dateStr.getDate())))
if (birthday != (dateStr.getFullYear() + "-"
+ Append_zore(dateStr.getMonth() + 1) + "-" + Append_zore(dateStr
.getDate()))) {
$(this).addClass("txtRequired");
// alert("证件出生日期非法!");
//$("#person_id").val("");
$("#birthday").val("");
return false;
}
$(this).removeClass("txtRequired");
$("#birthday").val(birthday);
} else {
$(this).addClass("txtRequired");
// alert("证件号码格式非法!");
//$("#person_id").val("");
$("#birthday").val("")
return false;
}
return true;
}
function Append_zore(temp) {
if (temp < 10) {
return "0" + temp;
} else {
return temp;
}
}
- jquery 验证身份证
- jquery validate 身份证验证
- 基于jquery实现身份证验证
- jQuery验证手机号、身份证、姓名
- jquery 验证身份证 验证邮箱 正则表达式
- jquery validate日期与身份证验证实例
- jQuery正则验证15/18身份证
- jquery表单验证框架提供的身份证验证方法
- 身份证验证
- 身份证验证
- 身份证验证
- 身份证验证
- 身份证验证
- 验证身份证
- 身份证验证
- 身份证验证
- 身份证验证
- 身份证验证
- Pseudoforest (并查集处理回路问题)
- C/C++数组名与指针区别详解
- 在对象设计中应用GRASP
- linux shell编程 trap命令
- 浅谈C内存分配1
- jquery 验证身份证
- shell: .bash_profile和.bashrc的区别(如何设置生效)
- erlang与flash通信细节
- 新东方六级4-12
- 分析索引的碎片化程度,并重建索引
- IOCP相关的一些总结
- 浅谈C内存分配2
- ios gcd
- erlang 启动并关联一个节点