如何用正则表达式验证身份证号
身份证号组成:
·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获取系统环境变量
如何用正则表达式验证身份证号相关推荐
- 正则表达式验证身份证号以及验证校验位的正确性
需求:给定一个字符串,从中提取出身份证号 关于验证15位和18位身份证号的正则表达式可以参考下面的内容: http://www.cppcns.com/wangluo/re/183062.html 一. ...
- 使用正则表达式验证身份证号、QQ号、手机号、邮箱、地址、邮编、银行卡号、学号、车牌号、快递单号、验证码、ISBN号、网址、IPV4地址、IPV6地址、出生年月日、姓名
目录 (原创不易,你们对阿超的赞就是阿超持续更新的动力!) (以免丢失,建议收藏~~~) ------------------------------------------------------- ...
- 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 ...
- 使用正则表达式进行身份证号匹配
正则表达式匹配身份证号分为:18位和15位 校验 18位 身份证 地区: ([1-6][1-9]|50)\d{4} // 补充重庆地区50 年的前两位: (18|19|20) 1800-2399 年的 ...
- 验证身份证号 格式问题
导入的时候 验证身份证号的格式问题 if(!sfzh.equals("")&&isIDNumber(sfzh) == false){returnMap.put(&q ...
- mysql身份证校验码_mysql正则表达式验证身份证,并获取年龄、生日、性别
mysql正则表达式验证身份证,并获取年龄.生日.性别 发布时间:2018-05-17 16:28, 浏览次数:4844 , 标签: mysql正则表达式,mysql验证身份证,REGEXP mysq ...
- JS正则表达式验证身份证号码
function isCardNo(card) { // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X var reg = /(^\d{1 ...
- jsp验证身份证号并自动计算年龄和出生日期
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- python之验证身份证号合法性的库:id_validator
上个星期,大佬分享了一个验证身份证号合法性的库:id_validator,没空去试着用一下看看,今天有点时间,来试着用下这个库. 1.首先,要安装这个库,windows+R键运行cmd,打开命令行窗口 ...
最新文章
- 小议WebRTC拥塞控制算法:GCC介绍
- OpenGL textures combined组合纹理的实例
- QT的QProxyStyle类的使用
- 第三章 最小化SpringXml 配置
- mysql alert table 日志_MySQL日志
- matlab球心投影,球心投影
- Ubuntu桌面培训(Ubuntu Desktop Course)中文译本发布
- html玫瑰花效果代码,html5渲染3D玫瑰花情人节礼物js特效代码
- PHY芯片88EE1111 MDIO接口调试
- Python类方法,静态方法
- Nginx SSL 结合Tomcat 重定向URL变成HTTP的问题
- azure java sdk_用于 Azure 媒体服务的 Java SDK 使用入门 | Microsoft Docs
- 样本标准差分母为什么是n-1
- paypal支付注意事项
- 装饰器python与python装饰器
- 获取本周周一和周末日期、上周周一和周末、下周周一和周末
- java编程题火车进站_火车进站
- python绘制糖葫芦_python用小海龟画糖葫芦
- 语音验证码短信原理和应用场景分析
- 有道智能词典笔上手实测,华为智慧生态加持学习效率会更强吗