js根据身份证获取出生日期及性别

CreateTime--2017年6月2日11:45:16
Author:Marydon

  第一步:身份证号格式校验

/**
* 身份证号格式校验
*/
function idValidator(obj) {
var provinces={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 expression=/(^\d{15}$)|(^\d{17}(\d|X)$)/;
var isViald=expression.test(obj.value);
if (isViald)
{
isViald=provinces[obj.value.substr(0,2)]?true:false;
}
return isViald;
}

  第二步:通过身份证获取出生日期及性别

/**
* 通过身份证获取出生日期及性别
* @param idCard 15/18位身份证号码
* @return JSON对象
* sex:0-女、1-男;
* birthDay:yyyy-MM-dd
*/
function getBirthdayAndSex(idCard) {
var info = {};
var birth = (idCard.length === 18) ? idCard.slice(6, 14) : idCard.slice(6, 12);
// 18位:提取第17位数字;15位:提取最后一位数字
var order = (idCard.length == 18) ? idCard.slice(-2,-1):idCard.slice(-1);
info.birthDay = (idCard.length === 18) ? ([birth.slice(0, 4),
birth.slice(4, 6), birth.slice(-2)
]).join('-') : ([
'19' + birth.slice(0, 2), birth.slice(2, 4),
birth.slice(-2)
]).join('-');
// 余数为0代表女性,不为0代表男性
info.sex = (order % 2 === 0 ? 0 : 1);
return info;
}

  第三步:改变出生日期及性别的值及只读状态

/**
* 改变出生日期及性别的值及只读状态
*/
function changeCardInfo(obj) { if ("" == obj.value && !document.getElementById('BIRTH_DAY2').disabled)
return; // 格式校验结果
var result = idValidator(obj);
if (result) {
// 获取出生日期及性别
var cardInfo = getBirthdayAndSex(obj.value);
var birthDay = cardInfo.birthDay;
var sex = cardInfo.sex; document.getElementById('BIRTH_DAY2').disabled = true;
document.getElementById('BIRTH_DAY2').value = birthDay;
document.getElementById('BIRTH_DAY').value = birthDay; document.getElementById('male').disabled = true;
document.getElementById('female').disabled = true; if (1 == sex) {
document.getElementById('male').checked = true;
document.getElementById('SEX').value = '男';
} else {
document.getElementById('female').checked = true;
document.getElementById('SEX').value = '女';
}
} else {//重置
document.getElementById('BIRTH_DAY').value = "";
document.getElementById('BIRTH_DAY2').value = "";
document.getElementById('BIRTH_DAY2').disabled = false;
document.getElementById('male').disabled = false;
document.getElementById('female').disabled = false;
document.getElementById('male').checked = true;
document.getElementById('SEX').value = '男';
} }

  HTML

<table border="0" cellpadding="1" cellspacing="0" align="center">
<tbody>
<tr>
<td>身份证号</td>
<td>
<input name="CARD_ID" class="TextBox" type="text" dataType="idcard" id="CARD_ID" errMessage="请输入正确的身份证号!"
onblur="changeCardInfo(this);" />
</td>
<td>性别</td>
<td>
<label>
<input name="SEX1" type="radio" checked id="male" onchange="$('#SEX').val('男');" />

</label>
<label>
<input name="SEX1" type="radio" id="female" onchange="$('#SEX').val('女');" />

</label>
<input name="SEX" type="hidden" id="SEX" value="男" />
</td>
<td>出生日期</td>
<td>
<input class="TextBox" readonly id="BIRTH_DAY2" type="text" onclick="WdatePicker({maxDate:'%y-%M-%d'});"
onblur="$('#BIRTH_DAY').val(this.value)" />
<input name="BIRTH_DAY" id="BIRTH_DAY" type="hidden" />
</td>
</tr>
</tbody>
</table>

相关推荐:

 

js 根据身份证获取出生日期及性别的更多相关文章

  1. JS-根据身份证获取 出生日期和性别

    一.根据身份证获取出生日期和性别/** * 根据身份证获取出生日期(yyyy-MM-dd) * @param psidno * @returns {birthday:yyyy-MM-dd} * @co ...

  2. js从身份证号中获取出生日期和性别

    今天,在做移动端的项目中,按照设计稿的要求,是可以让用户自己输入出生日期的,我还很认真的用了刚刚知道的html5表单的日期类型,本想着终于不用日期插件就可以实现用户选择自己的出生日期了,可结果老大说, ...

  3. java 根据身份证号码获取出生日期、性别、年龄

      1.情景展示 如何根据身份证号,计算出出生日期.性别.年龄? 2.解决方案 从网上找的别人的,因为并没有实际用到,所以并未对其优化! /** * 通过身份证号码获取出生日期.性别.年龄 * @pa ...

  4. Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳

    Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳 早期的身份证号码为15位数字,现在使用的身份证号码为18位数字,它们的含义如下:(1)15位:1-6位为地区代码,7-8位 ...

  5. JS-身份证号获取出生日期、性别、年龄

    var cardId=$("#cardId").val();//先获取身份证号(据自己实际写法获取) 1.获取出生日期: function getBirth(cardId){ va ...

  6. Java 通过身份证获取生日和性别

    /** * 通过身份证号获取生日和性别 * @param identifyNumber * @return */ private String[] getBirthAndSexByIdNo(Strin ...

  7. Java中校验身份证号合法性(真伪),获取出生日期、年龄、性别、籍贯

    开发过程中有用的身份证号的业务场景,那么校验身份证的合法性就很重要了,另外还有通过身份证获取出生日期.年龄.性别.籍贯等信息, 下面是本人在开发中用到的关于校验身份证真伪的工具类,可以直接拿来使用,非 ...

  8. JavaScript 通过身份证号获取出生日期、年龄、性别 、籍贯

    JavaScript 通过身份证号获取出生日期.年龄.性别 .籍贯(很全) 效果图: 示例代码: //由于没有写外部JS,所以代码比较长!!! <!DOCTYPE html PUBLIC &qu ...

  9. js 根据身份证号获取性别,年龄,等

    $(function(){        $("#corpOwnerIdno").blur(function(){          //获取输入身份证号码             ...

随机推荐

  1. Ajax 生成流文件下载(实现代码)

    // 绑定导出按钮    $("#btnExport").clickCheckLogin(function () { var form = $("<form> ...

  2. (一)shell基础

    (1)shell作用: 1)自动化批量系统初始化程序(软件安装,时区设置,安全策略) 2)自动化批量软件部署程序(LNMP,LAMP,LNTM) 3)管理应用程序(kvm,集群管理扩容) 4)日志分析 ...

  3. HDU 6324.Problem F. Grab The Tree-博弈(思维) (2018 Multi-University Training Contest 3 1006)

    6324.Problem F. Grab The Tree 题目看着好难,但是题解说的很简单,写出来也很简单.能想出来就是简单的,想不出来就难(讲道理,就算是1+1的题目,看不出来就是难的啊). 和后 ...

  4. 4、Django实战第4天:xadmin快速搭建后台管理系统

    Django默认为我们提供了后台管理系统admin, urls.py中配置的第一条就是访问后台管理系统admin的 urlpatterns = [ url(r'^admin/', admin.site ...

  5. 表(Table)

    虽然我们已经将不同用途的物品保存在不同的仓库中了,但是在同一个仓库中数据的保存仍然存在问题.比如食品分为熟食.生肉.大米等,如果把他们随意的堆放在一起,就会造成我们无法很容易的对这些食品进行管理,当要 ...

  6. python url拼接

    import datetime,requests import json,time,urllib import hashlib self.url_domain = “www.baidu,com/” u ...

  7. Servlet 3.1 规范

    在线版目录 Servlet3.1规范翻译——前言 Servlet3.1规范翻译——概览 Servlet3.1规范翻译——Servlet Context Servlet3.1规范翻译——Response ...

  8. 【分块】bzoj2957 楼房重建

    http://www.cnblogs.com/wmrv587/p/3843681.html ORZ 分块大爷.思路很神奇也很清晰. 把 块内最值 和 块内有序 两种良好的性质结合起来,非常棒地解决了这 ...

  9. 【并查集】bzoj2054 疯狂的馒头

    因为只有最后被染上的颜色会造成影响,所以倒着处理,用并查集维护已经染色的区间的右端点,即fa[i]为i所在的已染色区间的右端点,这样可以保证O(n)的复杂度. #include<cstdio&g ...

  10. 【树链剖分】【dfs序】【线段树】bzoj2836 魔法树

    这道题告诉我们:树链剖分的重标号就是dfs序. #include<cstdio> #include<algorithm> using namespace std; #defin ...