JavaScript正则表达式以验证ID号是否合法(两种方法)

电脑杂谈  发布时间:2020-07-12 21:12:23  来源:网络整理

正则表达式 号_号 正则表达式_正则表达式有x

第一种方法:

用户注册页面上的某些要求更加严格,因此有必要验证ID卡js是否合法. 通过此功能,系统软件非常严格,因此过滤了许多用水户. 下面的实现方法将向您说明.

很多时候,我们使用一组正则表达式来确定用户输入的是否合法. 使用正则表达式前,您对的组成了解多少?让我们谈谈ID号中包含多少信息:

正则表达式 号_正则表达式有x_号 正则表达式

1. 数字结构

公民身份号码是功能的组合,由一个17位的正文代码和一个1位的校验码组成. 从左到右的排列顺序为: 六位地址码,八位出生日期码,三位顺序码和一位校验码.

2. 地址代码(前六位数字)

正则表达式 号_正则表达式有x_号 正则表达式

表示编码对象永久居所所在县(市,旗,区)的行政区划代码,并应按照gb / T2260的规定执行.

3. 出生日期代码(七到十四位数字)

表示编码对象的出生年月日,并按照gb / T7408的规定执行. 年,月和日代码之间没有分隔符.

号 正则表达式_正则表达式有x_正则表达式 号

4. 序列号(第15至17位数字)

表示在同一地址代码标识的区域内,给同一年,同一月,同一天出生的人分配了序列号,给男性分配了序列号的奇数,偶数编号分配给女性.

5. 验证码(第18位)

作为尾号的校验码由编号单元根据统一公式计算得出. 如果某人的尾号为0-9,则不会显示X,但如果尾号为10,则您必须改用X,因为如果您将10用作尾随号,则该人的ID将变为19位数字. X是罗马数字10,请使用X代替10以确保公民的符合国家标准.

了解ID号结构的组成部分的含义之后,我们开始输入主题:

1. 为整个国家定义对象

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: “新疆”正则表达式有x,71: “台湾”, 81: “香港”,82: “澳门”正则表达式有x,91: “海外”}

2. 正则表达式判断

function isCardID(sId){
 var iSum=0 ;
 var info="" ;
 if(!/^\d{17}(\d|x)$/i.test(sId)) return "你输入的长度或格式错误";
 sId=sId.replace(/x$/i,"a");
 if(aCity[parseInt(sId.substr(0,2))]==null) return "你的地区非法";
 sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
 var d=new Date(sBirthday.replace(/-/g,"/")) ;
 if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "上的出生日期非法";
 for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11) ;
 if(iSum!=1) return "你输入的号非法";
 //aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2"男":"女");//此次还可以判断出输入的号的人性别
 return true;
}

第二种方法:


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-278090-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 孙卫星
        孙卫星

        农民靠点积蓄来养老

        • 仙台惠理
          仙台惠理

          你的意思是为了发展经济

      热点图片
      拼命载入中...