Home  >  Article  >  Web Front-end  >  Perfect implementation of ID card verification js regular method

Perfect implementation of ID card verification js regular method

一个新手
一个新手Original
2017-10-19 09:47:002036browse

Note:

1. Only 18-digit ID numbers are verified. There should be very few 15-digit ID numbers now.

2. xX is not case-sensitive,

3. The year of birth is 1900-2099, and the number of days in each month is also verified (taking into account the situation of leap months).

4. See the verification rules for details. This is written in more detail and clearness. I believe it After reading it, you can write one by yourself.

5. At present, it is not possible to accurately verify the location code. I have collected and sorted the location code and provided a query API for reference only.

If there is any inaccuracy, please leave a message to point it out

api address: http://www.xuzee.com/api/idcard.php

Interface description: http:/ /www.xuzee.com/api/

6. This verification function is currently running in the project. No problems have been found yet. If there are any problems, it will be updated.

Above

Directly enter the code:


function testid(id) {
     // 1 "验证通过!", 0 //校验不通过 // id为身份证号码
        var format = /^(([1][1-5])|([2][1-3])|([3][1-7])|([4][1-6])|([5][0-4])|([6][1-5])|([7][1])|([8][1-2]))\d{4}(([1][9]\d{2})|([2]\d{3}))(([0][1-9])|([1][0-2]))(([0][1-9])|([1-2][0-9])|([3][0-1]))\d{3}[0-9xX]$/;
        //号码规则校验
        if(!format.test(id)){
            return {'status':0,'msg':'身份证号码不合规'};
        }
        //区位码校验
        //出生年月日校验   前正则限制起始年份为1900;
        var year = id.substr(6,4),//身份证年
            month = id.substr(10,2),//身份证月
            date = id.substr(12,2),//身份证日
            time = Date.parse(month+'-'+date+'-'+year),//身份证日期时间戳date
            now_time = Date.parse(new Date()),//当前时间戳
            dates = (new Date(year,month,0)).getDate();//身份证当月天数
        if(time>now_time||date>dates){
            return {'status':0,'msg':'出生日期不合规'}
        }
        //校验码判断
        var c = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);   //系数
        var b = new Array('1','0','X','9','8','7','6','5','4','3','2');  //校验码对照表
        var id_array = id.split("");
        var sum = 0;
        for(var k=0;k<17;k++){
            sum+=parseInt(id_array[k])*parseInt(c[k]);
        }
        if(id_array[17].toUpperCase() != b[sum%11].toUpperCase()){
            return {&#39;status&#39;:0,&#39;msg&#39;:&#39;身份证校验码不合规&#39;}
        }
        return {&#39;status&#39;:1,&#39;msg&#39;:&#39;校验通过&#39;}
}

The above is the detailed content of Perfect implementation of ID card verification js regular method. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn