js判断身份证号码是否合法有效全国通用

JavaScript08

js判断身份证号码是否合法有效全国通用,第1张

如果要做到全国通用。估计有点问题。毕竟身份证是与个人的信息相互对应的。除非走专业的通道去校验!!如果只是简单判断身份证是否合法有效,可以参考一下身份证号码的构造结构。

首先看看身份证是怎么构造的:

首先:

1)地区代码:表示出生地,上图为北京市朝阳区

2)出生日期:不解释,只要合理就好

3)顺序号:最后一位为奇数表示性别男,偶数性别女

4)校验位:这是系统验证比较关键的一位,由前面17位通过公式计算得出,具体公式在此不做讨论,因为其结果为数字0~9或者字母X

这些条件都知道了。

就可以开始了:

//首先最迟判断身份证号码的位数(18)

var CardNumber=""//待验证的身份证号码

var iscard=/^\d{17}([0-9]|X)$/

if(iscard.text(CardNumber)){

  //验证身份证的"地区代码(前6位数字,这里需要搜集各个地区的代码...)"

  if(这里校验地区代码){

     if(这里校验出生日期){

       //校验出生日期时,会牵扯到日历算法(计算某年的某月有多少天,防止用户随意输入大于31的日期)

       //如果判断到这里了,就可以初步确定为"合法有效"的身份证号码了。

       //因为“校验位”相对而言较复杂。如果楼主有意思。可以百度找资料。

     }

  }

}

很简单

function CheckCardNo(card) 

  // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X 

  var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/ 

  if(reg.test(card) === false) 

  { 

    alert("身份证输入不合法") 

    return false 

  } 

}

CheckCardNo('123456778')