//Js获取日期、月初时的前天、昨天、今天、明天
function getDay(day) {var today = new Date();var targetday_milliseconds = today.getTime() + 1000 * 60 * 60 * 24 * day;today.setTime(targetday_milliseconds); //注意,这行是关键代码var tYear = today.getFullYear();var tMonth = today.getMonth();var tDate = today.getDate();tMonth = doHandleMonth(tMonth + 1);tDate = doHandleMonth(tDate);return tYear + "-" + tMonth + "-" + tDate;
}
function doHandleMonth(month) {var m = month;if (month.toString().length == 1) {m = "0" + month;}return m;
}
//日期格式化format()
Date.prototype.format = function (format) {var o = {"M+": this.getMonth() + 1, //month"d+": this.getDate(), //day"h+": this.getHours(), //hour"m+": this.getMinutes(), //minute"s+": this.getSeconds(), //second"q+": Math.floor((this.getMonth() + 3) / 3), //quarter"S": this.getMilliseconds() //millisecond};if (/(y+)/.test(format)) {format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));}for (var k in o) {if (new RegExp("(" + k + ")").test(format)) {format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));}}return format;
};
/* 得到日期年月日等加数字后的日期 */
Date.prototype.dateAdd = function (interval, number) {var d = this;var k = {'y': 'FullYear','q': 'Month','m': 'Month','w': 'Date','d': 'Date','h': 'Hours','n': 'Minutes','s': 'Seconds','ms': 'MilliSeconds'};var n = {'q': 3, 'w': 7};eval('d.set' + k[interval] + '(d.get' + k[interval] + '()+' + ((n[interval] || 1) * number) + ')');return d;
};
//身份证验证
var Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1];// 加权因子
var ValideCode = [1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2];// 身份证验证位值.10代表X
function IdCardValidate(idCard) {// idCard = trim(idCard.replace(/ /g, ""));//if (idCard.length == 15) {//    return isValidityBrithBy15IdCard(idCard);//} elseif (idCard.length == 18) {var a_idCard = idCard.split("");// 得到身份证数组if (isValidityBrithBy18IdCard(idCard) && isTrueValidateCodeBy18IdCard(a_idCard)) {return true;} else {return false;}} else {return false;}
}/*** 判断身份证号码为18位时最后的验证位是否正确* @param a_idCard 身份证号码数组* @return*/
function isTrueValidateCodeBy18IdCard(a_idCard) {var sum = 0; // 声明加权求和变量if (a_idCard[17].toLowerCase() == 'x') {a_idCard[17] = 10;// 将最后位为x的验证码替换为10方便后续操作}for (var i = 0; i < 17; i++) {sum += Wi[i] * a_idCard[i];// 加权求和}var valCodePosition = sum % 11;// 得到验证码所位置if (a_idCard[17] == ValideCode[valCodePosition]) {return true;} else {return false;}
}/*** 通过身份证判断是男是女* @param idCard 15/18位身份证号码*/
function genderByIDCard(val) {if (15 == val.length) { //15位身份证号码if (parseInt(val.charAt(14) / 2) * 2 != val.charAt(14))return 0;elsereturn 1;}if (18 == val.length) { //18位身份证号码if (parseInt(val.charAt(16) / 2) * 2 != val.charAt(16))return 0;     //男elsereturn 1;     //女}
}/*** 通过身份证判断周岁年龄*/
function ageByIDCard(val) {var birthdayValue;//if (15 == val.length) { //15位身份证号码//    birthdayValue = val.charAt(6) + val.charAt(7);//    if (parseInt(birthdayValue) < 10) {//        birthdayValue = '20' + birthdayValue;//    }//    else {//        birthdayValue = '19' + birthdayValue;//    }//    birthdayValue = birthdayValue + val.charAt(8) + val.charAt(9) + "." + val.charAt(10) + val.charAt(11) + "." + val.charAt(12) + val.charAt(13);////}if (18 == val.length) { //18位身份证号码birthdayValue = val.charAt(6) + val.charAt(7) + val.charAt(8) + val.charAt(9) + "." + val.charAt(10) + val.charAt(11) + "." + val.charAt(12) + val.charAt(13);}var age = jsGetAge(birthdayValue);return age;
}/*** 获取周岁*/
function jsGetAge(strBirthday) {var returnAge;var strBirthdayArr = strBirthday.split(".");var birthYear = strBirthdayArr[0];var birthMonth = strBirthdayArr[1];var birthDay = strBirthdayArr[2];var d = new Date();var nowYear = d.getFullYear();var nowMonth = d.getMonth() + 1;var nowDay = d.getDate();if (nowYear == birthYear) {returnAge = 0;//同年 则为0岁} else {var ageDiff = nowYear - birthYear; //年之差if (ageDiff > 0) {if (nowMonth == birthMonth) {var dayDiff = nowDay - birthDay;//日之差if (dayDiff < 0) {returnAge = ageDiff - 1;} else {returnAge = ageDiff;}} else {var monthDiff = nowMonth - birthMonth;//月之差if (monthDiff < 0) {returnAge = ageDiff - 1;} else {returnAge = ageDiff;}}} else {returnAge = -1;//返回-1 表示出生日期输入错误 晚于今天}}return returnAge;//返回周岁年龄}/*** 通过身份证获取出生年月日*/
function birthdayByIDCard(val) {var birthdayValue;//if (15 == val.length) { //15位身份证号码//    birthdayValue = val.charAt(6) + val.charAt(7);//    if (parseInt(birthdayValue) < 10) {//        birthdayValue = '20' + birthdayValue;//    }//    else {//        birthdayValue = '19' + birthdayValue;//    }//    birthdayValue = birthdayValue + val.charAt(8) + val.charAt(9) + "-" + val.charAt(10) + val.charAt(11) + "-" + val.charAt(12) + val.charAt(13);////}if (18 == val.length) { //18位身份证号码birthdayValue = val.charAt(6) + val.charAt(7) + val.charAt(8) + val.charAt(9) + "-" + val.charAt(10) + val.charAt(11) + "-" + val.charAt(12) + val.charAt(13);}return birthdayValue;
}/*** 验证18位数身份证号码中的生日是否是有效生日* @param idCard 18位书身份证字符串* @return*/
function isValidityBrithBy18IdCard(idCard18) {var year = idCard18.substring(6, 10);var month = idCard18.substring(10, 12);var day = idCard18.substring(12, 14);var temp_date = new Date(year, parseFloat(month) - 1, parseFloat(day));// 这里用getFullYear()获取年份,避免千年虫问题if (temp_date.getFullYear() != parseFloat(year)|| temp_date.getMonth() != parseFloat(month) - 1|| temp_date.getDate() != parseFloat(day)) {return false;} else {return true;}
}/*** 验证15位数身份证号码中的生日是否是有效生日* @param idCard15 15位书身份证字符串* @return*/
function isValidityBrithBy15IdCard(idCard15) {var year = idCard15.substring(6, 8);var month = idCard15.substring(8, 10);var day = idCard15.substring(10, 12);var temp_date = new Date(year, parseFloat(month) - 1, parseFloat(day));// 对于老身份证中的你年龄则不需考虑千年虫问题而使用getYear()方法if (temp_date.getYear() != parseFloat(year)|| temp_date.getMonth() != parseFloat(month) - 1|| temp_date.getDate() != parseFloat(day)) {return false;} else {return true;}
}

js实现身份证号码有效性验证相关推荐

  1. Js实现中国公民身份证号码有效性验证

    2019独角兽企业重金招聘Python工程师标准>>> 参考: Java实现中国公民身份证号码有效性验证 Php实现中国公民身份证号码有效性验证 本文将使用JavaScript实现中 ...

  2. 【JS】Js二代身份证号码正则验证

    Js二代身份证号码正则验证代码: export function checkIDCard(idcode) {// 加权因子var weight_factor = [7,9,10,5,8,4,2,1,6 ...

  3. python 身份证号码有效性验证

    先声明以下代码不是全部原创,网上找了前辈的一些代码,经过自己的部分加工,有了如下的身份证有效性验证代码: #!/usr/bin/env python3 # -*- coding: utf-8 -*-i ...

  4. JAVA 身份证号码有效性验证

    本文转自:http://www.blogjava.net/zeroline/archive/2011/01/03/342227.html </pre><pre name=" ...

  5. Js二代身份证号码正则验证

    一代身份证号码是十五位, 2013年1月1日开始,咱们中国全面停止使用一代身份证了. 二代身份证号码: 1-6位:表示行政区划的代码. 1.2位,所在省(直辖市,自治区)代码: 3.4位,所在地级市( ...

  6. 身份证号码有效性验证

    结构和形式 号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码. 地址码 表示编码对象 ...

  7. js实现身份证号码验证

    文章最新地址请访问:http://leeyee.github.io/blog/2013/07/31/javascript-idcard-validate/ 以下是根据身份证号码编码规则,使用JS对其进 ...

  8. js身份证号有效性验证

    js身份证号有效性验证 1.简述 最近做的系统有用到实名验证的,起初对于用户身份证号只是简单地使用正则表达式进行验证, 很多无效的身份证号就成了漏网之鱼. 导致后台存表里很多无效的身份证号,随便输入用 ...

  9. 【python】身份证号码有效性校验

    1. 前言 中华人民共和国国家标准GB 11643-1999<公民身份号码>中规定:公民身份号码是特征组合码,由17位数字本体码和1位校验码组成. 18位数字组合的方式是: 其中,最后一位 ...

最新文章

  1. jeesite如何已生成数据的数据源_jeesite1.X 集成多数据源
  2. Lazada代运营怎么样?需不需要找?如何选择一家靠谱的公司
  3. java编译器分析_Java反编译器的剖析
  4. (9)How to take a picture of a black hole
  5. 我的一个朋友加班猝死了,我很恐慌
  6. R语言机器学习:xgboost的使用及其模型解释
  7. 计算机excel减法函数,excel减法函数的使用
  8. 只需2个公式,3阶魔方7步还原法
  9. 如何用阿里云服务器建站-全流程
  10. FRP内网穿透访问家中的NAS和路由器后台
  11. sql字符型注入-sqli第1关
  12. vb计算机二级操作题考试试题,2017全国计算机二级VB考试操作题与答案
  13. 中国队夺金幕后的「AI手语翻译官」:初次上岗,手语可懂度超90%
  14. java如何获取Class类对象
  15. 【考前冲刺整理】20220812
  16. java类名遵从法_程序员必知的Java基础:5条命名规范和8种数据类型归纳
  17. 糖尿病遗传风险检测挑战赛
  18. 山西计算机专业英语,计算机专业英语(必懂)
  19. 长寿命激光在线测径仪 关键看细节
  20. mac jdk安装配置环境变量

热门文章

  1. JTOPO 修改图片颜色
  2. python语言通俗理解_慢步学习,python语言编程,来扯扯语言的学习理解
  3. 知识点滴 - 什么是当量
  4. JUnit:求求你了,别再用 main 方法测试了,好吗?
  5. IE/Firefox每次刷新时自动检查网页更新,无需手动清空缓存的设置方法(转)
  6. yarn : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本。
  7. tomcat控制台不打印异常问题
  8. 1100 校庆分数 25
  9. php头像获取,php获取QQ头像并显示的方法
  10. 1028 人口普查(C语言)