身份证号组成:
·17位数字 + 1位校验码
·地址码:前六位
·出生日期码:第七位至第十位
·顺序码:第十五位至十七位(对同年同月同日生的人便定的顺序号,顺序号奇数为男生,偶数为女生)
·检验码:第十八位(0-9 X)
//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: "新疆", 71: "台湾", 81: "香港", 82: "澳门", 91: "国外" }

//2、正则表达式判断

function isCarID(sId) {//声明变量接收所输入的身份证号var iSum = 0;//定义变量var info = "";//定义空格

//验证字符串是英文和数字

if (!/^\d{17}(\d|x)$/i.test(sId)) return "你输入的身份证长度或格式错误";

//最后一个字符是x

 sId = sId.replace(/x$/i, "a");

//获取当前所传过来的身份证截取前两位数字判断是否在aCity集合内;

substr(开始位置,截取长度):截取字符串。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 % 11 != 1) return "你输入的身份证号非法"; aCity[parseInt]return "身份证号格式正确!";
}

//3、获取身份证号

$("#IdentityCard").change(function () {

//获取身份证的文本框,调用改变事件
//获取身份证号

 var sId = $("#IdentityCard").val();layer.alert(isCarID(sId))//然后在方法里判断
});

全部代码:

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: "国外" }
function isCarID(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 % 11 != 1) return "你输入的身份证号非法"; aCity[parseInt]return "身份证号格式正确!";
}
$("#IdentityCard").change(function () {var sId = $("#IdentityCard").val();layer.alert(isCarID(sId))
});

完。
猜您喜欢的文章:
2018UI课程总结(UI理论篇)
什么是Java算数运算符?
令程序员泪流满面的瞬间,实在忍不住笑了
Oracle约束怎么写?
AE基础界面设置和旋转加载案例
《酒店管理系统——桑拿、沐足模块》项目研发阶段性总结
Oracle 基础知识汇总
PS快捷键
如何使用Oracle视图?
AE圆点加载动画制作过程
如何使用Collections解决多线程安全问题
如何使用System获取系统环境变量

如何用正则表达式验证身份证号相关推荐

  1. 正则表达式验证身份证号以及验证校验位的正确性

    需求:给定一个字符串,从中提取出身份证号 关于验证15位和18位身份证号的正则表达式可以参考下面的内容: http://www.cppcns.com/wangluo/re/183062.html 一. ...

  2. 使用正则表达式验证身份证号、QQ号、手机号、邮箱、地址、邮编、银行卡号、学号、车牌号、快递单号、验证码、ISBN号、网址、IPV4地址、IPV6地址、出生年月日、姓名

    目录 (原创不易,你们对阿超的赞就是阿超持续更新的动力!) (以免丢失,建议收藏~~~) ------------------------------------------------------- ...

  3. js进阶正则表达式15验证身份证号(|符号的使用:var reg=/^\d{17}[\d|X]$|^\d{15}$/)(str的方法substr)...

    js进阶正则表达式15验证身份证号(|符号的使用:var reg=/^\d{17}[\d|X]$|^\d{15}$/)(str的方法substr) 一.总结 1.|符号的使用:var reg=/^\d ...

  4. 使用正则表达式进行身份证号匹配

    正则表达式匹配身份证号分为:18位和15位 校验 18位 身份证 地区: ([1-6][1-9]|50)\d{4} // 补充重庆地区50 年的前两位: (18|19|20) 1800-2399 年的 ...

  5. 验证身份证号 格式问题

    导入的时候 验证身份证号的格式问题 if(!sfzh.equals("")&&isIDNumber(sfzh) == false){returnMap.put(&q ...

  6. mysql身份证校验码_mysql正则表达式验证身份证,并获取年龄、生日、性别

    mysql正则表达式验证身份证,并获取年龄.生日.性别 发布时间:2018-05-17 16:28, 浏览次数:4844 , 标签: mysql正则表达式,mysql验证身份证,REGEXP mysq ...

  7. JS正则表达式验证身份证号码

    function isCardNo(card) { // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X var reg = /(^\d{1 ...

  8. jsp验证身份证号并自动计算年龄和出生日期

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  9. python之验证身份证号合法性的库:id_validator

    上个星期,大佬分享了一个验证身份证号合法性的库:id_validator,没空去试着用一下看看,今天有点时间,来试着用下这个库. 1.首先,要安装这个库,windows+R键运行cmd,打开命令行窗口 ...

最新文章

  1. 小议WebRTC拥塞控制算法:GCC介绍
  2. OpenGL textures combined组合纹理的实例
  3. QT的QProxyStyle类的使用
  4. 第三章 最小化SpringXml 配置
  5. mysql alert table 日志_MySQL日志
  6. matlab球心投影,球心投影
  7. Ubuntu桌面培训(Ubuntu Desktop Course)中文译本发布
  8. html玫瑰花效果代码,html5渲染3D玫瑰花情人节礼物js特效代码
  9. PHY芯片88EE1111 MDIO接口调试
  10. Python类方法,静态方法
  11. Nginx SSL 结合Tomcat 重定向URL变成HTTP的问题
  12. azure java sdk_用于 Azure 媒体服务的 Java SDK 使用入门 | Microsoft Docs
  13. 样本标准差分母为什么是n-1
  14. paypal支付注意事项
  15. 装饰器python与python装饰器
  16. 获取本周周一和周末日期、上周周一和周末、下周周一和周末
  17. java编程题火车进站_火车进站
  18. python绘制糖葫芦_python用小海龟画糖葫芦
  19. 语音验证码短信原理和应用场景分析
  20. 有道智能词典笔上手实测,华为智慧生态加持学习效率会更强吗

热门文章

  1. Win10内核驱动断链式隐藏指定进程
  2. 跨境独立站Magento绑定连连跨境支付收款教程!
  3. edge浏览器突然变的卡顿-解决办法
  4. java中的单例_细说Java中的几种单例模式
  5. 导出多个Excel文件并打包为压缩包下载
  6. QMS系统 API Management接口自动化的框架实现
  7. mongodb管理工具下载
  8. 深度学习数据增强——扩充数据集
  9. 关于开展XXX的通知
  10. OUC2021软件工程“OUC拼车“校园拼车程序小组Gamma阶段软件测试报告