技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营
卡卡网是专业的网站测速平台,网速测试,测试网站速度,就来卡卡网 ~
问题反馈网络日志

【DiyVM】沙田机房/香港云/回国CN2线路/AMD EPYC/39元一月5M/CN2海外云主机 24元/月BGP+CN2海外云 低至25元/月海外主机 低至$2/月

DiyVM:香港VPS惊爆价36元一月
★站长变现★特色悬浮小图标广告
5M CN2 GIA云主机 24元起
【转化好产品,官方高价收量】
一一一云主机 26元起一一一
官方高价收量,每日稳定结算

一一云主机 24元 3折起一一
AWS核心代理U充值 免注册开户
海外CN2云 低至$2.5/月
海外云低至2折 298/年
免费测试★APK免杀 谷歌过保护
官方收量CPA/CPS长期稳定

海外主机 5M CN2 低至$2/月
恒创科技 一 海外服务器 ● 高速稳定
★解决安装报毒★谷歌过保护机制
CN2 GIA/1000Mbps $111/月
超级签★免杀★加固★满意付款
全球云主机 3天试用再买

【菠萝云】香港4G内存99元,马上开通
亿人互联-津/京BGP托管租用/VPS
苹果签名/APP封装/远控免杀
10M CN2海外云VPS 53元/月
一一站长/主播好变现一一有流量就来
站长变现 特色悬浮小图标广告

实力产品变现
实力产品变现
实力产品变现
实力产品变现
实力产品变现
实力产品变现

赞助商

分类目录

赞助商

最新文章

本文介绍我们要用jQuery操作HTML,移除某class的div标签,但保留内...
在书写正则表达式时,* + ? 符号非常常见,但是它们又比较容易混淆。本文将用一...
本文我将给大家介绍如何用JS+CSS来实现可移动显示的图片背景效果。 
在一些商品展示的网页里,我们经常看到图片放大的效果。本文就给大家介绍一下,如何用...
本文介绍如何分别使用JS和jQuery两种方法来实现点击按钮复制文字到剪贴板,只...
本文介绍如何使用jquery-resizable调整表格(table)列宽。
本文介绍如何使用jquery-resizable插件调整左右/上下窗格大小。

搜索

身份证合法性校验的JavsScript实例代码

作者:admin    时间:2021-5-11 17:30:53    浏览:484

身份证合法性校验的JavsScript实例代码,主要运用了正则表达式,来校验输入号码是否符合身份证号码编码规则。

编码规则如下:

  1. 前1、2位数字表示:所在省(直辖市、自治区)的代码;
  2. 第3、4位数字表示:所在地级市(自治州)的代码;
  3. 第5、6位数字表示:所在区(县、自治县、县级市)的代码;
  4. 第7—14位数字表示:出生年、月、日;
  5. 第15、16位数字表示:所在地的派出所的代码;
  6. 第17位数字表示性别:奇数表示男性,偶数表示女性;
  7. 第18位数字是校检码:也有的说是个人信息码,不是随计算机的随机产生,它是用来检验身份证的正确性。校检码可以是0—9的数字,有时也用x表示。作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位。X是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。

 身份证号码编码规则
身份证号码编码规则

下面是完整的HTML代码

  1. <!DOCTYPE html>
  2.  
  3. <html>
  4. <head>
  5.     <meta name="viewport" content="width=device-width" />
  6.     <title>IdCard</title>
  7.     <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
  8. </head>
  9. <body style="text-align:center;">
  10.     <p>身份证号:
  11.     <input type="text" id="idcard" style="width:200px"/>
  12.     <input type="button" id="checkidcard" value="校验身份" /></p>
  13.     <p>校验结果:
  14.     <input type="text" id="istrue" style="width:275px"/></p>
  15.     <script>
  16.  
  17.         $(function () {
  18.             $("#checkidcard").click(function () {
  19.  
  20.                 if (isCardNo($("#idcard").val()) == true) {
  21.                     $("#istrue").val("校验通过");
  22.                 } else {
  23.                     $("#istrue").val("校验不通过");
  24.                 }
  25.             });
  26.  
  27.         });
  28.  
  29.         function isCardNo(code) {
  30.             var city = { 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: "国外 " };
  31.             var pass = true;
  32.  
  33.             if (code.length > 0 && !(/^[1-9]\d{5}(19|20|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/.test(code) || /^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}[0-9Xx]$/.test(code))) {
  34.                 pass = false;
  35.  
  36.             } else if (code.length > 0 && !city[code.substr(0, 2)]) {
  37.                 pass = false;
  38.             } else {
  39.  
  40.                 if (code.length == 18) {
  41.                     code = code.split('');
  42.                     //∑(ai×Wi)(mod 11)
  43.                     //加权因子
  44.                     var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
  45.                     //校验位
  46.                     var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2];
  47.                     var sum = 0;
  48.                     var ai = 0;
  49.                     var wi = 0;
  50.                     for (var i = 0; i < 17; i++) {
  51.                         ai = code[i];
  52.                         wi = factor[i];
  53.                         sum += ai * wi;
  54.                     }
  55.                     var last = parity[sum % 11];
  56.                     if (parity[sum % 11] != code[17]) {
  57.                         pass = false;
  58.                     }
  59.                 }
  60.             }
  61.             return pass;
  62.         }
  63.  
  64.     </script>
  65. </body>
  66. </html>

execcodegetcode

代码解释:

1、HTML代码要先引用jQuery文件

  1. <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>

2、正则表达式主要使用了test()方法

test() 方法用于检测一个字符串是否匹配某个模式。

语法:

RegExpObject.test(string)

string 必需,这是要检测的字符串。

返回值:

如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 false

实例

在下面的例子中,我们将检索 "WebKaka":

  1. <script type="text/javascript">
  2. var str = "Visit WebKaka";
  3. var patt1 = new RegExp("WebKaka");
  4.  
  5. var result = patt1.test(str);
  6.  
  7. document.write("Result: " + result);
  8. </script>

输出

Result: true

trying >>

 

标签: 正则表达式  
x
广告: 【限时】云主机 24元/月