身份证验证 根据身份证得到生日性别 实现Trim功能

<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>
// 检验身份证信息
function  CheckID(id)

    
var  idNum  =  id;
    
// alert(idNum);
     var  errors = new  Array
    (
    
" 验证通过 " ,
    
" 身份证号码位数不对 " ,
    
" 身份证含有非法字符 " ,
    
" 身份证号码校验错误 " ,
    
" 身份证地区非法 "
    );
    
    
// 身份号码位数及格式检验
     var  re;
    
var  len  =  idNum.length;
    
// 身份证位数检验
     if (len  !=   15   &&  len  !=   18 )
    {
        
return  errors[ 1 ];
    }
    
else   if (len  ==   15 )
    {
        re 
=   new  RegExp( /^ (d{ 6 })() ? (d{ 2 })(d{ 2 })(d{ 2 })(d{ 3 })$ / );
    }
    
else
    {
        re 
=   new  RegExp( /^ (d{ 6 })() ? (d{ 4 })(d{ 2 })(d{ 2 })(d{ 3 })([ 0 - 9xX])$ / ); 
    }

    
var  area = { 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 : " 国外 " }

    
var  idcard_array  =   new  Array();
    idcard_array 
=  idNum.split( "" );

    
// 地区检验
     if (area[parseInt(idNum.substr( 0 , 2 ))] == null
    {
        
return  errors[ 4 ];
    }
        
    
// 出生日期正确性检验
     var  a  =  idNum.match(re);

    
if  (a  !=   null )
    {
        
if  (len == 15 )
        {
            
var  DD  =   new  Date( " 19 " + a[ 3 ] + " / " + a[ 4 ] + " / " + a[ 5 ]);
            
var  flag  =  DD.getYear() == a[ 3 ] && (DD.getMonth() + 1 ) == a[ 4 ] && DD.getDate() == a[ 5 ];
        }
        
else   if (len  ==   18 )
        {
            
var  DD  =   new  Date(a[ 3 ] + " / " + a[ 4 ] + " / " + a[ 5 ]);
            
var  flag  =  DD.getFullYear() == a[ 3 ] && (DD.getMonth() + 1 ) == a[ 4 ] && DD.getDate() == a[ 5 ];
        }

        
if  ( ! flag) 
        {
            
return   " 身份证出生日期不对! "
        }                        
          
        
// 检验校验位
         if (len  ==   18 )
        {
            S 
=  (parseInt(idcard_array[ 0 ])  +  parseInt(idcard_array[ 10 ]))  *   7
            
+  (parseInt(idcard_array[ 1 ])  +  parseInt(idcard_array[ 11 ]))  *   9
            
+  (parseInt(idcard_array[ 2 ])  +  parseInt(idcard_array[ 12 ]))  *   10
            
+  (parseInt(idcard_array[ 3 ])  +  parseInt(idcard_array[ 13 ]))  *   5
            
+  (parseInt(idcard_array[ 4 ])  +  parseInt(idcard_array[ 14 ]))  *   8
            
+  (parseInt(idcard_array[ 5 ])  +  parseInt(idcard_array[ 15 ]))  *   4
            
+  (parseInt(idcard_array[ 6 ])  +  parseInt(idcard_array[ 16 ]))  *   2
            
+  parseInt(idcard_array[ 7 ])  *   1  
            
+  parseInt(idcard_array[ 8 ])  *   6
            
+  parseInt(idcard_array[ 9 ])  *   3  ;

            Y 
=  S  %   11 ;
            M 
=   " F " ;
            JYM 
=   " 10X98765432 " ;
            M 
=  JYM.substr(Y, 1 ); // 判断校验位

            
// 检测ID的校验位
             if (M  ==  idcard_array[ 17 ].toUpperCase())
            { 
                
return   ""
            }
            
else
            {
                
return  errors[ 3 ];
            } 
        }         
    }
    
else
    {
        
return  errors[ 2 ];
    }
    
    
return   "" ;
}

// 得到生日和性别
function  ShowBirthday(val,birthdayID,sexID)
{
    
var  idCard  =  CheckID(val);
    
if (idCard  !=   "" )
    {
        alert(idCard);
        
return   false ;
    } 
    
    
var  birthdayValue;
    
var  sexValue;
    
// 15位身份证号码
     if ( 15   ==  val.length)
    {   
        birthdayValue   
=    val.charAt( 6 +  val.charAt( 7 );   
        
if (parseInt(birthdayValue)  <   10 )
        {   
            birthdayValue   
=     ' 20 '   +  birthdayValue;   
        }
        
else
        {   
            birthdayValue   
=     ' 19 '   +  birthdayValue;   
        }

        birthdayValue 
=  birthdayValue.toString()  + ' - ' +  val.charAt( 8 ) + val.charAt( 9 ) + ' - ' + val.charAt( 10 ) + val.charAt( 11 );   

        
if (parseInt(val.charAt( 14 ) / 2 ) * 2   !=  val.charAt( 14 ))   
            sexValue 
=   ' ' ;   
        
else    
            sexValue 
=   ' ' ;   

    }   
    
    
// 18位身份证号码
     if ( 18 == val.length)
    {   
        birthdayValue 
=  val.charAt( 6 ) + val.charAt( 7 ) + val.charAt( 8 ) + val.charAt( 9 ) + ' - ' + val.charAt( 10 ) + val.charAt( 11 ) + ' - ' + val.charAt( 12 ) + val.charAt( 13 );   
        
        
if (parseInt(val.charAt( 16 ) / 2 ) * 2   !=  val.charAt( 16 ))
           sexValue 
=   ' '
        
else  
           sexValue 
=   ' '
    }   
    
    
if (document.all[birthdayID]  !=  undefined)
        document.all[birthdayID].value 
=  birthdayValue;
        
    
if (document.all[sexID]  !=  undefined)
        document.all[sexID].value 
=  sexValue;
    
    
return   true ;
  
}

//  去掉字符串的空格
//
 Trim() , Ltrim() , RTrim()
String.prototype.Trim  =   function ()

    
return   this .replace( / ( ^ s * ) | (s * $) / g, "" );


String.prototype.LTrim 
=   function ()

    
return   this .replace( / ( ^ s * ) / g,  "" );
}

String.prototype.RTrim 
=   function ()
{
    
return   this .replace( / (s * $) / g,  "" );
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值