当前位置:网站首页>身份证号的严谨判断精确到队后一位
身份证号的严谨判断精确到队后一位
2022-06-30 02:32:00 【门前大桥下.】
1.身份证号最后一位的计算逻辑
身份证号码最后一位计算方法:
1、将前面的身份证号码17位数分别乘以不同的系数。
从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。
2、将这17位数字和系数相乘的结果相加。
3、用加出来和除以11,看余数是多少?
4、余数只可能有0-1-2-3-4-5-6-7-8-9-10这11个数字。
其分别对应的最后一位身份证的号码为1-0-X -9-8-7-6-5-4-3-2。(即馀数0对应1,馀数1对应0,馀数2对应X…)
以上的内容来源于网络
校验的具体代码
/** * 身份证的校验规则 * @param {*} value 身份 证号 * @return {*} 返回值 promise * 通过then(res) res接受 res是对象{ result:false,msg:"你输入的身份证长度或格式错误"} * result:true 通过 false 失败 */
export function isCardID( value) {
return new Promise((resolve,reject)=>{
if (!/(^\d{15}$)|(^\d{17}(\d|X|x)$)/.test(value)) {
resolve({
result:false,msg:"你输入的身份证长度或格式错误"})
}
//身份证城市
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: "国外" };
if (!aCity[parseInt(value.substr(0, 2))]) {
resolve({
result:false,msg:"你的身份证地区非法"})
}
// 出生日期验证
var sBirthday = (value.substr(6, 4) + "-" + Number(value.substr(10, 2)) + "-" + Number(value.substr(12, 2))).replace(/-/g, "/"),
d = new Date(sBirthday)
if (sBirthday != (d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate())) {
resolve({
result:false,msg:"身份证上的出生日期非法"})
}
// 身份证号码校验
var sum = 0,
weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2],
codes = "10X98765432"
for (var i = 0; i < value.length - 1; i++) {
sum += value[i] * weights[i];
}
var last = codes[sum % 11]; //计算出来的最后一位身份证号码
if (value[value.length - 1] != last) {
resolve({
result:false,msg:"你输入的身份证号非法"})
}
resolve({
result:true,msg:"认证合格"})
})
}
边栏推荐
- 如何使用SMS向客户传递服务信息?指南在这里!
- VScode如何Debug(调试)进入标准库文件/第三方包源码
- Global and Chinese market of ERP software for garment and textile industries 2022-2028: Research Report on technology, participants, trends, market size and share
- Jupyter notebook displays a collection of K-line graphs
- 【干货分享】最新WHQL徽标认证申请流程
- matlab代码运行教程(如何运行下载的代码)
- Global and Chinese market of relay lens 2022-2028: Research Report on technology, participants, trends, market size and share
- 代码签名、驱动签名的常见问题解答
- FDA mail security solution
- SSL证书格式转化的两种方法
猜你喜欢

Digicert、Sectigo、Globalsign代码签名证书的区别

What should academic presentation /ppt do?

如何预防钓鱼邮件?S/MIME邮件证书来支招

每周推荐短视频:为什么理论正确但得不到预期结果?

matlab代码运行教程(如何运行下载的代码)

FAQs for code signature and driver signature

What are the requirements for NPDP product manager international certification examination?

Implementation of Sanzi chess with C language

Merge sort

PR second training notes
随机推荐
打造创客教育中精湛技艺
day33
Implement vs to run only one source file at a time
What are the requirements for NPDP product manager international certification examination?
dhu编程练习
Shell Sort
Unity3D UGUI强制刷新Layout(布局)组件
Entering Jiangsu writers and poets carmine Jasmine World Book Day
Global and Chinese market of relay lens 2022-2028: Research Report on technology, participants, trends, market size and share
dhu编程练习
如何预防钓鱼邮件?S/MIME邮件证书来支招
【npm】解决使用npm安装TypeORM的报错问题
Select sort
What should academic presentation /ppt do?
What is digicert smart seal?
How vscode debugs into standard library files / third-party package source code
VScode如何Debug(调试)进入标准库文件/第三方包源码
NCA: the nine year old has launched a DDoS attack
DHU programming exercise
Two methods of SSL certificate format conversion