javascript 身份证号码验证函数(可辨真伪,支持15或18位身份证号)测试误差为0
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]更直接的测试代码就是:alert(test(“身份证号码”));经测试,上面的JS验证太强大了,输入正确的身份证后,随便改一位都报错!非常实用,以后大家就方便了解用户输入的身份证的正确与否了。 在IT行业中,身份证号码验证是常见的用户数据验证需求,特别是在涉及到个人信息处理的系统中。JavaScript作为客户端脚本语言,常用于此类实时验证。本话题主要介绍一个JavaScript身份证号码验证函数,该函数具备辨真伪的功能,并能兼容15位和18位的身份证号码。 身份证号码是由15位或18位数字组成,其中包含出生日期、地市级行政区域代码、顺序码和校验码。18位身份证号码的最后一位是校验码,通过特定算法计算得出,用于检验整个号码的正确性。而15位身份证号码在2004年后已停止发放,但旧的15位号码仍然有效,因此验证函数需要同时处理这两种情况。 以下是一个简单的JavaScript身份证号码验证函数示例: ```javascript function test(idNumber) { var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; if (!reg.test(idNumber)) { return "身份证号码格式错误"; } // 检查15位身份证号码 if (idNumber.length === 15) { var datePart = idNumber.substr(6, 6); var now = new Date(); var birthDate = new Date("19" + datePart); if (birthDate > now || birthDate.getFullYear() < 1900) { return "出生日期不合法"; } } // 检查18位身份证号码的校验码 else if (idNumber.length === 18) { var arrId = idNumber.split(""); var sum = 0; for (var i = 0; i < 17; i++) { sum += (Math.pow(2, 17 - i) % 11) * parseInt(arrId[i], 11); } var checkCode = "10X98765432".charAt(sum % 11); if (arrId[17].toUpperCase() != checkCode) { return "身份证号码校验码错误"; } } return "身份证号码正确"; } ``` 这个函数首先通过正则表达式检查输入的身份证号码是否符合15位或18位的基本格式。如果格式正确,它会根据身份证号码的长度进一步验证。对于15位身份证,它会检查出生日期是否合理,确保其不会超过当前日期且年份在1900年之后。对于18位身份证,函数会计算校验码并与输入的校验码进行对比,如果两者不匹配,则表明身份证号码错误。 在实际应用中,你可以将这个函数集成到你的网页中,通过JavaScript事件监听用户的输入,如`onblur`事件,当用户离开输入框时立即进行验证。例如,你可以这样调用该函数: ```html <input type="text" id="idNumber" onblur="alert(test(this.value))"> ``` 这样的实时验证可以提供良好的用户体验,让用户在提交信息前就能知道身份证号码是否填写正确,避免了不必要的服务器请求和用户数据的错误录入。 JavaScript身份证号码验证函数在网页开发中起着关键作用,确保了用户输入的身份证信息准确无误,提高了系统的数据质量和安全性。通过学习和理解这种验证机制,开发者能够更好地处理与个人身份相关的敏感数据。
- 粉丝: 6
- 资源: 955
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论0