`
ddsheng1128
  • 浏览: 23046 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

js 验证身份证号码

 
阅读更多

idCard.js部分*******************************************************


//****************************************************************************

// 构造函数,变量为15位或者18位的身份证号码
function clsIDCard(CardNo) {
<wbr>this.Valid=false;<br><wbr>this.ID15='';<br><wbr>this.ID18='';<br><wbr>this.Local='';<br><wbr>if(CardNo!=null)this.SetCardNo(CardNo);<br> }</wbr></wbr></wbr></wbr></wbr>

// 设置身份证号码,15位或者18位
clsIDCard.prototype.SetCardNo = function(CardNo) {
<wbr>this.ID15='';<br><wbr>this.ID18='';<br><wbr>this.Local='';<br><wbr>CardNo=CardNo.replace(" ","");<br><wbr>var strCardNo;<br><wbr>if(CardNo.length==18) {<br><wbr><wbr><wbr>pattern= /^\d{17}(\d|x|X)$/;<br><wbr><wbr><wbr>if (pattern.exec(CardNo)==null)return;<br><wbr><wbr><wbr>strCardNo=CardNo.toUpperCase();<br><wbr>} else {<br><wbr><wbr><wbr>pattern= /^\d{15}$/;<br><wbr><wbr><wbr>if (pattern.exec(CardNo)==null)return;<br><wbr><wbr><wbr>strCardNo=CardNo.substr(0,6)+'19'+CardNo.substr(6,9)<br><wbr><wbr><wbr>strCardNo+=this.GetVCode(strCardNo);<br><wbr>}<br><wbr>this.Valid=this.CheckValid(strCardNo);<br> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

// 校验身份证有效性
clsIDCard.prototype.IsValid = function() {
<wbr>return this.Valid;<br> }</wbr>

// 返回生日字符串,格式如下,1981-10-10
clsIDCard.prototype.GetBirthDate = function() {
<wbr>var BirthDate='';<br><wbr>if(this.Valid)BirthDate=this.GetBirthYear()+'-'+this.GetBirthMonth()+'-'+this.GetBirthDay();<br><wbr>return BirthDate;<br> }</wbr></wbr></wbr>

// 返回生日中的年,格式如下,1981
clsIDCard.prototype.GetBirthYear = function() {
<wbr>var BirthYear='';<br><wbr>if(this.Valid)BirthYear=this.ID18.substr(6,4);<br><wbr>return BirthYear;<br> }</wbr></wbr></wbr>

// 返回生日中的月,格式如下,10
clsIDCard.prototype.GetBirthMonth = function() {
<wbr>var BirthMonth='';<br><wbr>if(this.Valid)BirthMonth=this.ID18.substr(10,2);<br><wbr>if(BirthMonth.charAt(0)=='0')BirthMonth=BirthMonth.charAt(1);<br><wbr>return BirthMonth;<br> }</wbr></wbr></wbr></wbr>

// 返回生日中的日,格式如下,10
clsIDCard.prototype.GetBirthDay = function() {
<wbr>var BirthDay='';<br><wbr>if(this.Valid)BirthDay=this.ID18.substr(12,2);<br><wbr>return BirthDay;<br> }</wbr></wbr></wbr>

// 返回性别,1:男,0:女
clsIDCard.prototype.GetSex = function() {
<wbr>var Sex='';<br><wbr>if(this.Valid)Sex=this.ID18.charAt(16)%2;<br><wbr>return Sex;<br> }</wbr></wbr></wbr>

// 返回15位身份证号码
clsIDCard.prototype.Get15 = function() {
<wbr>var ID15='';<br><wbr>if(this.Valid)ID15=this.ID15;<br><wbr>return ID15;<br> }</wbr></wbr></wbr>

// 返回18位身份证号码
clsIDCard.prototype.Get18 = function() {
<wbr>var ID18='';<br><wbr>if(this.Valid)ID18=this.ID18;<br><wbr>return ID18;<br> }</wbr></wbr></wbr>

// 返回所在省,例如:上海市、浙江省
clsIDCard.prototype.GetLocal = function() {
<wbr>var Local='';<br><wbr>if(this.Valid)Local=this.Local;<br><wbr>return Local;<br> }</wbr></wbr></wbr>

clsIDCard.prototype.GetVCode = function(CardNo17) {
<wbr>var Wi = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);<br><wbr>var Ai = new Array('1','0','X','9','8','7','6','5','4','3','2');<br><wbr>var cardNoSum = 0;<br><wbr>for (var i=0; i&lt;CardNo17.length; i++)cardNoSum+=CardNo17.charAt(i)*Wi[i];<br><wbr>var seq = cardNoSum%11;<br><wbr>return Ai[seq];<br> }</wbr></wbr></wbr></wbr></wbr></wbr>

clsIDCard.prototype.CheckValid = function(CardNo18) {
<wbr>if(this.GetVCode(CardNo18.substr(0,17))!=CardNo18.charAt(17))return false;<br><wbr>if(!this.IsDate(CardNo18.substr(6,8)))return false;<br><wbr>var aCity={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:"国外"};<br><wbr>if(aCity[parseInt(CardNo18.substr(0,2))]==null)return false;<br><wbr>this.ID18=CardNo18;<br><wbr>this.ID15=CardNo18.substr(0,6)+CardNo18.substr(8,9);<br><wbr>this.Local=aCity[parseInt(CardNo18.substr(0,2))];<br><wbr>return true;<br> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

clsIDCard.prototype.IsDate = function(strDate) {
<wbr>var r = strDate.match(/^(\d{1,4})(\d{1,2})(\d{1,2})$/);<br><wbr>if(r==null)return false;<br><wbr>var d= new Date(r[1], r[2]-1, r[3]);<br><wbr>return (d.getFullYear()==r[1]&amp;&amp;(d.getMonth()+1)==r[2]&amp;&amp;d.getDate()==r[3]);<br> }</wbr></wbr></wbr></wbr>

<wbr></wbr>

页面部分**************************************************************

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>身份证验证</title>
<script src="idCard.js"></script>
</head>
<body>
<script>
<wbr>function valiIdCard(idCard){<br><wbr><wbr>var checkFlag = new clsIDCard(idCard);<br><wbr><wbr>if (!checkFlag.IsValid()) {<br><wbr><wbr><wbr>alert("输入的身份证号无效,请输入真实的身份证号!");<br><wbr><wbr><wbr>document.getElementByIdx("idCard").focus();<br><wbr><wbr><wbr>return false;<br><wbr><wbr>}else{<br><wbr><wbr><wbr><wbr>alert("正确!");<br><wbr><wbr>}<br><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

</script>
<input id="idCard" type="text" onblur="valiIdCard(this.value)"/>
</body>

分享到:
评论

相关推荐

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

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

    JS验证身份证号码合法性.txt

    JS验证身份证号码合法性

    Js验证身份证号码 Demo例子里有完整的Js代码

    身份证号码验证; Demo例子里有完整的Js代码; 末位为X或x都能验证; 老身份证号码15位的也可以验证是否正确; 完整验证新老身份证号码的正确性

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

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

    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身份证号码获取性别、出生日期、籍贯省市.zip

    4. **校验码**(第18位):基于前17位数字通过特定算法计算得出,用于验证身份证号码的合法性。 要从身份证号码中获取性别,我们只需要查看第17位数字。如果它是奇数,那么这个人是男性;如果是偶数,那么这个人是...

    js身份证号码验证

    js身份证号码验证 详细全面的身份证号码验证

    js验证身份证格式

    在JavaScript中,验证身份证号码通常涉及以下步骤: 1. **长度检查**:检查输入的身份证号码长度,必须是15位或18位。 2. **字符类型检查**:身份证号码只包含数字,因此需要确保输入的字符串仅包含0-9的数字。 3. ...

    JS验证身份证及获取地区功能示例

    首先,身份证验证是确保用户输入的身份证号码合法的关键步骤。身份证号码由18位数字组成,前6位代表行政区划代码,接下来的7位是出生日期,接着的3位是顺序码,最后一位是校验码。JS中可以使用正则表达式进行验证: ...

    18位身份证号码验证代码

    18位身份证号码验证代码,js验证 ,javascript验证18位身份证代码,js验证身份证号码。

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

    在这个例子中,JavaScript代码负责处理用户的输入,进行身份证号码的有效性验证。 3. **身份证号码验证规则**:中国的身份证号码由18位数字组成,包括地区码、出生日期码、顺序码和校验码。验证时需检查: - 地区...

    正则表达式 JS 身份证验证

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

    javaScript 验证身份证号是否正确,并能获取户口所在地。

    javaScript实现验证身份证是否正确,并能获取户口所在地。 调用方式: 引入idCard.js var msg = idCard.checkIdCard(身份证号); msg为 "正确" 时验证正确,否则返回错误信息 身份证正确时调用 var address = ...

    javascript 身份证号码格式验证

    运用javascript进行身份证号码格式验证。

    根据身份证号码获取性别、出生日期、籍贯省市的js示例

    6. **JavaScript实现**:在JS文件中编写函数,监听身份证号码输入框的`oninput`事件。当输入发生改变时,调用该函数,根据上述逻辑解析身份证号码并更新相应的显示区域。 7. **事件处理**:在JavaScript中,可以...

    最全身份证号码验证JS

    最全身份证号码验证JS包含以下内方面内容: 1、验证身份证的长度及格式 2、验证身份证地区是否正确 3、验证身份证上的出生日期是否正确 4、验证身份证号最后一位是否正确 5、根据身份证号验证性别 以上内容希望对有...

    身份证号码号码验证JS

    身份证号码号码验证JS。可以非常严格的对所输入的号码进行验证,特别是有‘X’的,以及二代身份证。

    用JavaScript验证身份证号

    * 身份证15位编码规则:dddddd yymmdd xx p * dddddd:地区码 * yymmdd: 出生年月日 * xx: 顺序类编码,无法确定 ... * i为身份证号码从右往左数的 2...18 位; Y_P为脚丫校验码所在校验码数组位置

Global site tag (gtag.js) - Google Analytics