javascript 公民身份号码验证代码

function isidcardno(idvalue) {
        var len=0, re;
        len=idvalue.length;
        if (len == 15 && isnumberstring(idvalue,"1234567890"))
        re = new regexp(/^(d{6})()?(d{2})(d{2})(d{2})(d{3})$/);
        else if (len == 18 && isnumberstring(idvalue,"1234567890xx"))
        re = new regexp(/^(d{6})()?(d{4})(d{2})(d{2})(d{3})(d)$/);
        else {
       // alert("输入的公民身份号码不合法,请重新输入!");
        return false;
        }
        var a = idvalue.match(re);
        if (a != null){
                if (len==15){
                    var d = new date("19"+a[3]+"/"+a[4]+"/"+a[5]);
            var b = d.getyear()==a[3]&&(d.getmonth()+1)==a[4]&&d.getdate()==a[5];
          }else{
                    var d = new date(a[3]+"/"+a[4]+"/"+a[5]);
            var b = d.getfullyear()==a[3]&&(d.getmonth()+1)==a[4]&&d.getdate()==a[5];
          }
          if (!b) {
      //alert("输入的公民身份号码 "+ a[0] +" 的日期不合法,请重新输入!");
      //alert("输入的公民身份号码不合法,请重新输入!");
      return false;
     }
        }
        if(len == 18 && !verifygmsfhlast(idvalue)){
      if (idvalue.substr(17,1)=='x'){
      //alert("公民身份号码的最后一位校验码不正确('x'应为大写),请检查!");
      }else
      {
      //alert("输入的公民身份号码不合法,请重新输入!");
      }
            return false;
        }
        return true;
}

function verifygmsfhlast(sval){
        if(sval.length != 18) return false;
        var wi = new array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);

        var vi = new array(1,0,'x',9,8,7,6,5,4,3,2)
        var ai = new array(17);
        var sum = 0;
        var remaining = 0;
        var verifynum = "";
        //通过循环把18位身份证的前17位存到数组ai中
        for(var i = 0; i < 17; i++){
            ai[i] = parseint(sval.substring(i,i+1));
        }
        for(var m = 0; m < ai.length; m++){
            //加权
            sum = sum + wi[m] * ai[m];
        }
        remaining = sum % 11;
        if(remaining == 2){
            verifynum = "x";
        }else{
            verifynum = vi[remaining];
        }
        if(verifynum != sval.substring(17,18)){
            return false;
        }else{
            return true;
        }
    }

时间: 2024-09-21 00:33:24

javascript 公民身份号码验证代码的相关文章

jsp身份证号码验证代码(15,18位)

<%@ page contenttype="text/html; charset=gb2312" language="java" import="java.sql.*" errorpage="" %> <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml

中华人民共和国公民身份号码校验

source: http://zh.wikipedia.org/wiki/中华人民共和国公民身份号码 #!/usr/bin/python import re; #定义验证函数def IC_chk(ic_serial): #权重数组 iW = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1];#身份证号码中可能的字符 values = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9',

用ASP动态生成JavaScript的表单验证代码

javascript|表单验证|动态 表单的验证是开发WEB应用程序中常遇到的一关.有时候我们必须保证表单的某些项必须填写.必须为数字.必须是指定的位数等等,这时候就要用到表单验证了,一般我们常用的表单验证有2种方式: 1.编写JavaScript或VBScript的表单验证函数,在客户端进行验证:2.在表单提交后,使用ASP的方法Request.Form获取表单的输入值进行判断,然后返回结果,这是在服务端进行验证: 这2种方式都有其优缺点,比如第1种方式速度比较快,而且通常使用警告框的方式,用

asp.net 中国身份证号码验证代码 非正则_实用技巧

复制代码 代码如下: using System; /// <summary> /// Summary description for IDCardValid /// </summary> public class IDCardValid { public IDCardValid() { // // TODO: Add constructor logic here // } /// <summary> /// 验证身份证号码 /// </summary> //

javascript邮箱 网址正则验证代码

网页特效邮箱 网址正则验证代码       function checkurl(){         var maxlength = 50;         var url = $("#tbcommentauthorurl").val();                 if(url.length == 0){             commenturlisvalid = true;             return true;         }         else i

邮编号码验证代码

zipcode   if (document.regform.u_zipcode.value == ""){   alert ("提示: 必须输入邮编!");   document.regform.u_zipcode.focus();   return false;  }  if (document.regform.u_zipcode.value.length!=6){   alert ("提示: 邮编长度不正确!");   document.r

PHP实现中国公民身份证号码有效性验证示例代码

本文将使用Java实现中国公民(15位或者18位)身份证号码的相关验证,功能如下: 身份证号有效性验证 分析详细身份证信息 生成一个虚拟的省份证号码. 身份证号码验证 1.号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码. 2.地址码(前六位数) 表示编码对象常住户口所在县(市.旗.区)的行政区划代码,按GB/T2260的规定执行. 3.出生日期码(第七位至十四位) 表示编码对象出

javascript身份证号码验证函数

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.111cn.net/1999/xhtml"> <head> <meta http-equiv="conte

js电子邮箱 QQ号码 MSN验证代码

email 邮箱验证       if (document.regform.u_email.value.length==0) {                 alert("提示: 请填写你的email地址");     document.regform.u_email.focus();                 return false;              }      else if ((document.regform.u_email.value.indexof(