利用JS对身份证号码规则是否正确标准的验证
更新:2018-12-05 09:28:58
人气:7334
来源:互联网转载
A+
function testid(id) {
// 1 "验证通过!", 0 //校验不通过 // id为身份证号码
var format = /^(([1][1-5])|([2][1-3])|([3][1-7])|([4][1-6])|([5][0-4])|([6][1-5])|([7][1])|([8][1-2]))\d{4}(([1][9]\d{2})|([2]\d{3}))(([0][1-9])|([1][0-2]))(([0][1-9])|([1-2][0-9])|([3][0-1]))\d{3}[0-9xX]$/;
//号码规则校验
if (!format.test(id)) {
return {
'status': 0,
'msg': '身份证号码不合规'
};
}
//区位码校验
//出生年月日校验 前正则限制起始年份为1900;
var year = id.substr(6, 4),
//身份证年
month = id.substr(10, 2),
//身份证月
date = id.substr(12, 2),
//身份证日
time = Date.parse(month + '-' + date + '-' + year),
//身份证日期时间戳date
now_time = Date.parse(new Date()),
//当前时间戳
dates = (new Date(year, month, 0)).getDate(); //身份证当月天数
if (time > now_time || date > dates) {
return {
'status': 0,
'msg': '出生日期不合规'
}
}
//校验码判断
var c = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); //系数
var b = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); //校验码对照表
var id_array = id.split("");
var sum = 0;
for (var k = 0; k < 17; k++) {
sum += parseInt(id_array[k]) * parseInt(c[k]);
}
if (id_array[17].toUpperCase() != b[sum % 11].toUpperCase()) {
return {
'status': 0,
'msg': '身份证校验码不合规'
}
}
return {
'status': 1,
'msg': '校验通过'
}
}推荐的文章
随手记
- ● 统信UOS系统如何设置指定时间自动重启系统的方法
- ● 自制(IP或域名)可信任的SSL证书,适用360、chrome等浏览器
- ● windows系统下php无法使用curl怎么办?
- ● 绿联UGREENKVM切换器(分屏器)快捷键丢失解决办法
- ● 统信UOS开机指定网址全屏启动自带浏览器以及屏蔽ALT+F4关闭
- ● xshellSSH连接Linux服务器防止超时退出
- ● php8开启OpenSSL扩展库报错disabledinstallext
- ● 统信系统linux安装php时的报错libxml-2.0>=2.7.6
- ● tidb关闭sql_mode=ONLY_FULL_GROUP_BY模式
- ● windows10如何开机自动运行bat文件
PHP经验分享
- ● PHP批量对TCP服务端指定多个IP非阻塞检查在线状态
- ● python实现TCP服务端持续接收关机、重启指令并输出结果【系列三】
- ● PHP给TCP服务端发送指令【系列二】
- ● PHP判断TCP服务端是否在线【系列一】
- ● PHP判断远程文件是否存在
- ● LINUX下用PHP获取CPU型号、内存占用、硬盘占用等信息代码
- ● PHP代码用UDP方式远程唤醒电脑让计算机开机
- ● apache下php生成验证码图片不能显示
- ● PHP使用AES加密解密示例(无偏移)
- ● Pluginmysql_native_passwordreported:''mysql_native_password'isdeprecate问题








