`
simonyq
  • 浏览: 23660 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

严格验证身份证号的Js 函数

阅读更多
<script>   
function checkIdcard(idcard){   
  var Errors=new Array("验证通过!","身份证号码位数不对!","身份证号码出生日期超出范围或含有非法字符!","身份证号码校验错误!","身份证地区非法!");   
  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,Y,JYM;   
  var S,M;   
  var idcard_array = new Array();   
  idcard_array = idcard.split("");   
  if(area[parseInt(idcard.substr(0,2))]==null) return Errors[4];   
  switch(idcard.length){   
    case 15:   
      if ((parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 && (parseInt(idcard.substr(6,2))+1900) % 4 == 0 )){   
        ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//测试出生日期的合法性   
      }   
      else{   
        ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//测试出生日期的合法性   
      }   
      if(ereg.test(idcard))   
        return Errors[0];   
      else  
        return Errors[2];   
    break;   
  case 18:   
    if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 )){   
      ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式   
    }   
    else{   
    ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式   
    }   
    if(ereg.test(idcard)){   
      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);   
      if(M == idcard_array[17])   
        return Errors[0];   
      else  
        return Errors[3];   
    }   
    else  
      return Errors[2];   
    break;   
  default:   
    return Errors[1];   
    break;   
  }   
}   
alert(checkIdcard("222426300207031"))   
</script>  

 

分享到:
评论

相关推荐

    javascript身份证号码验证-支持15位和18位带x身份证

    验证身份证号码的完整JavaScript函数可能如下所示: ```javascript function isIdCard(id) { var regex = /^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])\d{3}[\dXx]$/; if (!regex.test...

    验证身份证号码有效性的js

    要使用JavaScript验证身份证号码,我们首先需要定义一个函数,例如`isValidIDCard`,接收一个身份证号码作为参数。这个函数的核心就是校验码的计算过程。以下是一个简单的实现: ```javascript function ...

    身份证号码验证程序 javascript验证的html文件

    5. **JavaScript函数**:程序中可能包含一个或多个函数,如`validateIDCard()`,用于执行身份证号码的验证逻辑。函数内部会利用正则表达式进行初步格式检查,然后可能还会计算校验码,对比输入的校验码是否正确。 6...

    js判断身份证验证函数

    js判断身份证验证函数,这个函数能够判断城市各个地区开头的数字为准。

    js验证身份证号码的有效方法

    ### JS验证身份证号码的有效方法 身份证号码验证是前端开发中常见的功能之一,特别是在涉及用户注册、个人信息填写等场景时尤为重要。下面将详细介绍如何利用JavaScript来验证身份证号码的有效性。 #### 身份证...

    正则表达式 JS 身份证验证

    2. **精确模式**:更加细致地验证身份证号码的格式,包括检查出生日期的合理性等。 ```javascript /^(\d{6})(18|19|20)?(\d{2})([01]\d)([0123]\d)(\d{3})(\d|X)?$/ ``` 该正则表达式能够更准确地验证18位身份证...

    js验证身份证格式

    本压缩包提供的资源“js验证身份证”包含了一个JavaScript函数,用于检查输入的身份证号码是否符合15位或18位身份证号码的规则。 首先,我们来了解一下中国身份证的基本结构。15位身份证号码在1999年后已经被18位...

    身份证号验证HTML代码

    这个示例中的JavaScript代码首先检查了身份证号码的基本格式,然后通过`city.js`中的数据验证行政区域代码,再检查出生日期是否合理,最后计算校验码并与输入的校验码对比。如果所有验证都通过,就会在页面上显示...

    js身份证号验证

    在JavaScript中,身份证号验证是一个常见的需求,特别是在用户注册、个人信息填写等场景。这个`testCard`函数是用于验证输入的身份证号码是否有效的。函数接受一个参数`papersId`,即待验证的身份证号码字符串。 ...

    js身份证号的验证真伪和地区

    这是验证身份证真伪的核心步骤。脚本遍历身份证号码的前17位数字,按一定权重计算总和,再根据总和计算出预期的校验码。如果计算出的校验码与身份证号码的第18位匹配,则身份证号码有效。 具体算法如下: - 将...

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

    JavaScript中的身份证号码验证函数是为了确保输入的身份证号码符合中国居民身份证的格式,包括15位和18位的号码,并且能正确处理18位身份证最后一位的校验位(可以是0-9或字母X)。这个特定的`isIdCardNo`函数实现了...

    struts2+ajax 无刷新验证身份证号是否已注册,身份证号是否正确

    在身份证号的输入框中,通过`onblur`事件触发`check`函数,当失去焦点时自动验证身份证号。 ```html ()" /&gt; ``` 2. **JavaScript验证** 使用JavaScript进行初步的格式验证,如长度、数字等。如果通过初步验证...

    js身份证号码获取性别、出生日期、籍贯省市.zip

    在实际应用中,可以编写一个JavaScript函数,接受身份证号码作为参数,然后根据上述规则解析出性别、出生日期和籍贯省市。这个压缩包中的文件应该包含了这样一个函数的实现,可以直接在项目中引用,无需自己从头编写...

    JS验证身份证号与验证材料

    在JavaScript(JS)中进行身份证号验证是前端开发中常见的需求,...以上是关于“JS验证身份证号与验证材料”的详细内容,通过这些知识点,开发者可以创建一个有效的身份证号码验证机制,确保用户提交的信息准确无误。

    JavaScript的form表单验证中的身份证校验.pdf

    为了准确地验证身份证号码,我们需要构建一个正则表达式来匹配这些规则。以下是对每个部分的具体解释: 1. **地址码**(地区): - 表达式:`[1-9]\d{5}` - 解释:首位数字必须为1到9之间的任意一个数字,后面...

    js校验身份证号和银行卡号

    验证身份证号的JavaScript函数通常会检查其长度、格式以及校验码的正确性。一个简单的示例如下: ```javascript function validateIDCard(id) { const idCardReg = /^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/; ...

    JavaScript截取手机号码 手机验证 身份证验证等等

    身份证验证涉及到更复杂的校验规则,包括地区代码、出生日期、顺序号和校验码等。以下是一个简单的18位身份证号码验证函数: ```javascript function validateIdCard(id) { const idRegex = /(^\d{15}$)|(^\d{18}$...

    js常用工具函数-通用格式化时间、字符串验证-验证邮箱、手机号、电话号码、url地址、严格校验身份证号码,判断数据类型、数组随机洗牌算法、检测密码强度等等

    JS常用工具函数(压缩包中含有MD文件可自行查看)--包含:通用格式化时间、字符串验证-验证邮箱、手机号、电话号码、url地址、严格校验身份证号码,判断数据类型-是否是字符串、数字、Boolean、函数、对象、数组...

Global site tag (gtag.js) - Google Analytics