jQuery身份证验证插件

/*!* jQuery isIDCard Plugin v1.0.0* http://www.cnblogs.com/cssfirefly/p/5629561.html** Copyright 2016 link* Released under the MIT license*/
(function(factory) {if (typeof define === 'function' && define.amd) {// AMDdefine(['jquery'], factory);} else if (typeof exports === 'object') {// CommonJSfactory(require('jquery'));} else {// Browser globals
        factory(jQuery);}
}(function($) {var config = $.isIDCard = function(key) {
var result = key ? undefined : {};// To prevent the for loop in the first place assign an empty array// in case there are no cookies at all. Also prevents odd result when// calling $.cookie().function scCard(key) {if (key.length != 0) {if (!checkCard(key)) {return false} else {return true}}return false;}var vcity = {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: "国外"};checkCard = function(obj) {//校验长度,类型 if (isCardNo(obj) === false) {return false;}//检查省份 if (checkProvince(obj) === false) {return false;}//校验生日 if (checkBirthday(obj) === false) {return false;}//检验位的检测 if (checkParity(obj) === false) {return false;}return true;};//检查号码是否符合规范,包括长度,类型 isCardNo = function(obj) {//身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X var reg = /(^\d{15}$)|(^\d{17}(\d|X)$)/;if (reg.test(obj) === false) {return false;}return true;};//取身份证前两位,校验省份 checkProvince = function(obj) {var province = obj.substr(0, 2);if (vcity[province] == undefined) {return false;}return true;};//检查生日是否正确 checkBirthday = function(obj) {var len = obj.length;//身份证15位时,次序为省(3位)市(3位)年(2位)月(2位)日(2位)校验位(3位),皆为数字 if (len == '15') {var re_fifteen = /^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/;var arr_data = obj.match(re_fifteen);var year = arr_data[2];var month = arr_data[3];var day = arr_data[4];var birthday = new Date('19' + year + '/' + month + '/' + day);return verifyBirthday('19' + year, month, day, birthday);}//身份证18位时,次序为省(3位)市(3位)年(4位)月(2位)日(2位)校验位(4位),校验位末尾可能为X if (len == '18') {var re_eighteen = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/;var arr_data = obj.match(re_eighteen);var year = arr_data[2];var month = arr_data[3];var day = arr_data[4];var birthday = new Date(year + '/' + month + '/' + day);return verifyBirthday(year, month, day, birthday);}return false;};//校验日期 verifyBirthday = function(year, month, day, birthday) {var now = new Date();var now_year = now.getFullYear();//年月日是否合理 if (birthday.getFullYear() == year && (birthday.getMonth() + 1) == month && birthday.getDate() == day) {//判断年份的范围(3岁到100岁之间) var time = now_year - year;if (time >= 0 && time <= 130) {return true;}return false;}return false;};//校验位的检测 checkParity = function(obj) {//15位转18位 obj = changeFivteenToEighteen(obj);var len = obj.length;if (len == '18') {var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');var cardTemp = 0,i, valnum;for (i = 0; i < 17; i++) {cardTemp += obj.substr(i, 1) * arrInt[i];}valnum = arrCh[cardTemp % 11];if (valnum == obj.substr(17, 1)) {return true;}return false;}return false;};//15位转18位身份证号 changeFivteenToEighteen = function(obj) {if (obj.length == '15') {var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');var cardTemp = 0,i;obj = obj.substr(0, 6) + '19' + obj.substr(6, obj.length - 6);for (i = 0; i < 17; i++) {cardTemp += obj.substr(i, 1) * arrInt[i];}obj += arrCh[cardTemp % 11];return obj;}return obj;};result = scCard(key)return result;};}));

jQuery身份证验证插件相关推荐

  1. jQuery滑块拼图验证插件

    jQuery滑块拼图验证插件 jQuery拼图验证插件制作拖拽滑动条来拼图完成验证登录效果.完成拼图成功提示,错误提示重新再试.支持刷新图片拼图验证. 演示地址 下载地址

  2. jQuery 表单验证插件,jQuery Validation Engine用法详解

    jQuery 表单验证插件,jQuery Validation Engine用法详解 功能强大的 jQuery 表单验证插件,适用于日常的 E-mail.电话号码.网址等验证及 Ajax 验证,除自身 ...

  3. (转)强大的JQuery表单验证插件 FormValidator使用介绍

    jQuery formValidator表单验证插件是客户端表单验证插件. 在做B/S开发的时候,我们经常涉及到很多表单验证,例如新用户注册,填写个人资料,录入一些常规数据等等.在这之前,页面开发者( ...

  4. 强大的JQuery表单验证插件 FormValidator使用介绍

    jQuery formValidator表单验证插件是客户端表单验证插件. 在做B/S开发的时候,我们经常涉及到很多表单验证,例如新用户注册,填写个人资料,录入一些常规数据等等.在这之前,页面开发者( ...

  5. jQuery 表单验证插件jQuery Validation Engine用法详解

    功能强大的 jQuery 表单验证插件,适用于日常的 E-mail.电话号码.网址等验证及 Ajax 验证,除自身拥有丰富的验证规则外,还可以添加自定义的验证规则. jQuery Validation ...

  6. 验证插件——jquery.validate.js

    下载地址:http://download.csdn.net/download/s592652578/9457421 教程:http://www.runoob.com/jquery/jquery-plu ...

  7. 一款比较实用齐全的jQuery 表单验证插件

    一款比较实用,并且验证类型齐全的jQuery表单验证插件.英文版原作者@Vanadium,由我做中文整理.E文水平有限,如果翻译的有问题的,请大家指出,在此感谢~ 可以验证哪些? 文字,日期,邮箱,网 ...

  8. 轻量级的jQuery表单验证插件 - HAPPY.js

    为什么80%的码农都做不了架构师?>>>    日期:2012-9-14  来源:GBin1.com 在线演示  本地下载 功能强大的表单验证插件很多,以前我们介绍过validati ...

  9. 网站开发常用jQuery插件总结(四)验证插件validation

    在网站开发过程中,有时我们需要验证用户输入的信息是否符合我们的要求,所以我们会对用户提交的数据进行验证.验证分两次进行,一次是在客户端,一次是在服务端.客户端的验证可以提升用户的体验. jquery验 ...

最新文章

  1. php mysql 连接不上_PHP: 连接状态 - Manual
  2. Access把每一天的数据累加_如何设计 QQ、微信等第三方账号登陆 ?以及设计数据库表!...
  3. loj.ac:#10024. 「一本通 1.3 练习 3」质数方阵
  4. mono linux c 服务,使用mono-service在Linux上包装Windows服务
  5. 归并排序 自带时间复杂度测试
  6. python3 random模块_Python3 中 random模块
  7. linux内核内存映射实验报告,动手实践-Linux内存映射基础(上)
  8. 我国.NET域名注册总量超57.3万 6月新增6747个
  9. 平均聚类系数_Python聚类算法的应用实例
  10. Windows服务器nginx多个二级域名部署ssl证书超详细步骤(https)
  11. @ OutputCache 指令的 VaryByCustom 属性来缓存不同版本的页面
  12. 精度、速度完美平衡,最新图像分割SOTA模型重磅发布!!!
  13. 南昌大学2021年811考研真题+答案详解
  14. token干什么用_什么是Token?Token有什么用处?为什么使用它?Token认证又是什么?...
  15. 电脑连接SONY蓝牙耳机没有声音
  16. 离散数学-自反性-对称性-传递性,关系的性质
  17. centos 软件安装的几种方式及安装包下载地址
  18. 掠食细菌—蛭弧菌B. bacteriovorus,可以对抗革兰氏阴性感染?
  19. VLAN通过多个交换机传输,实现同VLAN互通,不同VLAN不通
  20. Web scraper使用教程-基本用法

热门文章

  1. ansys19.0--联轴器建模
  2. SQL server 2012 SP4设置TLS1.2
  3. adc0809 c语言程序,单片机C语言程序设计:ADC0809数模转换与显示
  4. Java基础番外篇二(Java修饰符讲解)
  5. 关于IFrame表述正确的有:()
  6. 简单的一些二维坐标系构建数学模型
  7. 福布斯公布最新全球富豪排行榜 盖茨退居第二
  8. 合并两个有序数组两种方式
  9. 【合并两个有序序列】
  10. WebSocket实现广播