javascript身份证号码验证函数支持带x

//--身份证号码验证-支持新的带x身份证function isIdCardNo(num) {   JavaScript
强烈推介IDEA2020.2破解激活,IntelliJ IDEA 注册码,2020.2 IDEA 激活码
//
--身份证号码验证-支持新的带x身份证


function
 isIdCardNo(num) 
{
    

var
 factorArr 
=
 
new
 Array(
7
,
9
,
10
,
5
,
8
,
4
,
2
,
1
,
6
,
3
,
7
,
9
,
10
,
5
,
8
,
4
,
2
,
1
);
    

var
 error;
    

var
 varArray 
=
 
new
 Array();
    

var
 intValue;
    

var
 lngProduct 
=
 
0
;
    

var
 intCheckDigit;
    

var
 intStrLen 
=
 num.length;
    

var
 idNumber 
=
 num;    
    

//
 initialize


    
if
 ((intStrLen 
!=
 
15

&&
 (intStrLen 
!=
 
18
)) {
        

//
error = "输入身份证号码长度不对!";


        
//
alert(error);


        
//
frmAddUser.txtIDCard.focus();


        
return
 
false
;
    }    
    

//
 check and set value


    
for
(i
=
0
;i
<
intStrLen;i
++
) {
        varArray[i] 

=
 idNumber.charAt(i);
        

if
 ((varArray[i] 
<
 
'
0
'
 
||
 varArray[i] 
>
 
'
9
'

&&
 (i 
!=
 
17
)) {
            

//
error = "错误的身份证号码!.";


            
//
alert(error);


            
//
frmAddUser.txtIDCard.focus();


            
return
 
false
;
        } 

else
 
if
 (i 
<
 
17
) {
            varArray[i] 

=
 varArray[i]
*
factorArr[i];
        }
    }
    

if
 (intStrLen 
==
 
18
) {
        

//
check date


        
var
 date8 
=
 idNumber.substring(
6
,
14
);
        

if
 (checkDate(date8) 
==
 
false
) {
            

//
error = "身份证中日期信息不正确!.";


            
//
alert(error);


            
return
 
false
;
        }        
        

//
 calculate the sum of the products


        
for
(i
=
0
;i
<
17
;i
++
) {
            lngProduct 

=
 lngProduct 
+
 varArray[i];
        }        
        

//
 calculate the check digit


        intCheckDigit 
=
 
12
 
-
 lngProduct 
%
 
11
;
        

switch
 (intCheckDigit) {
            

case
 
10
:
                intCheckDigit 

=
 
'
X
'
;
                

break
;
            

case
 
11
:
                intCheckDigit 

=
 
0
;
                

break
;
            

case
 
12
:
                intCheckDigit 

=
 
1
;
                

break
;
        }        
        

//
 check last digit


        
if
 (varArray[
17
].toUpperCase() 
!=
 intCheckDigit) {
            

//
error = "身份证效验位错误!...正确为: " + intCheckDigit + ".";


            
//
alert(error);


            
return
 
false
;
        }
    } 
    

else
{        
//
length is 15


        
//
check date


        
var
 date6 
=
 idNumber.substring(
6
,
12
);
        

if
 (checkDate(date6) 
==
 
false
) {
            

//
alert("身份证日期信息有误!.");


            
return
 
false
;
        }
    }
    

//
alert ("Correct.");


    
return
 
true
;
}

 

本文来源21aspnet,由架构君转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处:https://javajgs.com/archives/2384

发表评论