web项目中使用JS验证用户实名信息(含免费版和收费版) 您所在的位置:网站首页 免费身份证号码加姓名 web项目中使用JS验证用户实名信息(含免费版和收费版)

web项目中使用JS验证用户实名信息(含免费版和收费版)

2024-03-01 07:52| 来源: 网络整理| 查看: 265

开始

验证用户的实名信息,也就是判断用户填入的身份证号、姓名是否正确,是否匹配。

方法有两个大种类:

1、免费手撸验证

此验证方式只能验证身份证号码是否正确(身份证号有自验证算法),姓名只能用正则粗略验证,且无法证明身份证号与姓名匹配,但好处是免费。适合初创团队或者对实名信息有误差可容忍的项目。

2、收费型api接口

就是我们将身份证号和姓名发给这些api接口站点,由他们进行验证并且回馈给我们精准的结果。但缺点是收费,且不便宜。部分服务商单次验证结果身份证匹配才收费,不匹配不收费,这样的服务商还比较良心。

一、免费手撸验证代码

撸代码前一定要知晓原理:

目前我们使用的二代身份证有18位,其中 1-6位出生地编码(纯数字); 7-10位出生年份(纯数字); 11-12位出生月份(纯数字); 13-14位出生日期(纯数字); 15-16位出生顺序编号(纯数字); 17位性别标号(纯数字,男性为奇数,女性为偶数); 18位效验码(可能为数字或字母X);

校验原理: 根据前面十七位数字码,按照ISO7064:1983.MOD11-2校验码计算出第18位效验码,通俗的讲,身份证号码的最后一位,是由前17位计算而来的。

所以手撸验证身份证号码的方法是防不住绞尽脑汁要通关的人,只能作为一个检验工具,起到防止输错的作用。

ISO7064:1983.MOD11-2校验方式 1、将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。 2、将这17位数字和系数相乘的结果相加。 3、用加出来和除以11,余数只可能有0-1-2-3-4-5-6-7-8-9-10这11个数字。其分别对应的最后一位身份证的号码为1-0-X -9-8-7-6-5-4-3-2。 4、通过上面得知如果余数是3,就会在身份证的第18位数字上出现的是9。如果对应的数字是2,身份证的最后一位号码就是罗马数字X。

js代码(含其他工具集):

//身份证工具类 var idcardUtil = function () { //校验身份证号码是否正确,返回true/false var verify = function (idcard) { //省份码,验证前两位是否正确 var provinces = '#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#'; var province = idcard.substr(0, 2); if (provinces.indexOf(province) == -1) {//前两位为省份 return false; } //验证生日日期的格式是否正确(避免比如2月31日的错误) var birthday_year = idcard.substr(6, 4); var nowYear = new Date().getFullYear(); if (Number(birthday_year) nowYear) { return false; } var birthday_month = idcard.substr(10, 2); if (Number(birthday_month) > 12 || Number(birthday_month) = 29) { return false; } if (!isLeapYear && birthday_date >= 28) { return false; } } if (month31.indexOf(Number(birthday_month)) == -1 && birthday_month == 31) { return false; } if (Number(birthday_date) > 31 || Number(birthday_date)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有