javascript 出生日期和身份证判断大全

Javascript 出生日期和身份证判断大全

简介

本文主要讲解了如何使用Javascript判断身份证号和出生日期是否符合标准。

身份证号判断

校验规则

中国大陆的身份证号码是由18位数字组成的。最后一位为校验位,前17位为身份证号码的主体部分。其中,第1-2位为行政区划代码,第3-6位为出生年份(用4位数字表示),第7-10位为出生月份和日期(用2位数字分别表示),第11-17位为顺序编码,其中第17位为性别判断位,奇数表示男性,偶数表示女性。更具体的校验规则可以参见身份证号校验规则

实现代码

下面的Javascript代码实现了对身份证号码的校验,其中idcard是待校验的身份证号码。

function checkIdcard(idcard) {
  var isCorrect = false;
  if (idcard.length == 18) {
    var addrCode = idcard.substring(0, 6);
    var birthCode = idcard.substring(6, 14);
    var isMale = idcard.substring(16, 17) % 2;
    var weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
    var checkCodes = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
    var sum = 0;
    for (var i = 0; i < 17; i++) {
      sum += parseInt(idcard.charAt(i)) * weights[i];
    }
    var mod = sum % 11;
    if (idcard.charAt(17) == checkCodes[mod]) {
      isCorrect = true;
    }
  }
  return isCorrect;
}

示例说明

以下示例展示了如何使用上述函数判断身份证号码是否合法:

var idcard = '31010819900101000X';
if (checkIdcard(idcard)) {
  console.log('身份证号码' + idcard + '合法');
} else {
  console.log('身份证号码' + idcard + '不合法');
}

出生日期判断

校验规则

中国大陆的出生日期通常是由4位数字表示年份、2位数字表示月份、2位数字表示日期组成的。更具体的校验规则可以参见出生日期校验规则

实现代码

下面的Javascript代码实现了对出生日期的校验,其中birthdate是待校验的出生日期,格式为YYYY-MM-DD。如果传入的出生日期不是指定的格式,则返回false

function checkBirthdate(birthdate) {
  birthdate = birthdate.trim();
  var regex = /^\d{4}-\d{2}-\d{2}$/;
  if (!regex.test(birthdate)) {
    return false;
  }
  var dateArr = birthdate.split('-');
  var year = parseInt(dateArr[0]);
  var month = parseInt(dateArr[1]);
  var day = parseInt(dateArr[2]);
  var monthDays = [31,28,31,30,31,30,31,31,30,31,30,31];
  if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
    monthDays[1] = 29;
  }
  if (month < 1 || month > 12) {
    return false;
  }
  if (day < 1 || day > monthDays[month - 1]) {
    return false;
  }
  return true;
}

示例说明

以下示例展示了如何使用上述函数判断出生日期是否合法:

var birthdate = '1990-01-01';
if (checkBirthdate(birthdate)) {
  console.log('出生日期' + birthdate + '合法');
} else {
  console.log('出生日期' + birthdate + '不合法');
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript 出生日期和身份证判断大全 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 深度剖析JavaScript作用域从局部到全局一网打尽

    深度剖析JavaScript作用域从局部到全局一网打尽 什么是作用域 作用域是指一个变量、函数、对象可以被访问的范围。在JavaScript中,作用域有两种:全局作用域和局部作用域。 全局作用域是指在代码的任何地方都能访问的变量、函数、对象,通常是在顶层定义的。而局部作用域则是指只能在一个函数内部访问的变量、函数、对象。 作用域链 当在JavaScript中…

    JavaScript 2023年5月28日
    00
  • 动态加载JavaScript文件的两种方法

    当我们开发网站时,通常需要使用JavaScript来实现一些交互式效果,但是如果我们在HTML中直接将JavaScript代码写在页面中的话,会造成页面加载速度变慢,如果JavaScript代码很大的话,可能会严重影响用户体验。那么,如何能够提高网站的加载速度呢?答案是:动态加载JavaScript。 动态加载JavaScript的优势有: 减少页面的加载时…

    JavaScript 2023年5月27日
    00
  • 利用JS轻松实现获取表单数据

    下面我将详细讲解“利用JS轻松实现获取表单数据”的完整攻略。 1. 表单概述 表单是Web页面中常见的一种交互方式,是用户输入相关信息的一组控件。常见的表单控件包括输入框、下拉框、单选框、复选框等。表单控件一般都有一个name属性,通过该属性可以对表单进行相应的操作。 2. 使用JavaScript获取表单数据 可以使用JavaScript获取表单中输入的数…

    JavaScript 2023年6月10日
    00
  • javascript显示动态时间的方法汇总

    我来为你讲解一下“JavaScript显示动态时间的方法汇总”的完整攻略。 JavaScript显示动态时间的方法汇总 1. 使用Date对象 Date对象是 JavaScript 内置的日期时间对象,可以获取当前本地时间。通过setInterval方法实现定时更新。 示例代码如下: <p id="demo"></p&g…

    JavaScript 2023年5月27日
    00
  • js正则格式化日期时间自动补0的两种解法

    下面是“js正则格式化日期时间自动补0的两种解法”的完整攻略。 步骤一:获取日期时间值 首先,我们需要获取日期时间的值,通常可以用 Date 对象。 const date = new Date(); 解法一:使用 String.prototype.padStart() String.prototype.padStart() 是 ES2017 中新增的方法,可…

    JavaScript 2023年5月27日
    00
  • JS实现太极旋转思路分析

    下面是一份JS实现太极旋转的完整攻略。 1. 思路分析 太极旋转是一种常见的动画效果,其实现基本思路如下: 创建一个太极图形的HTML结构 使用CSS样式将其样式设置完成,达到一个静止的状态 使用JS来控制太极图形的旋转角度 具体实现过程中,其实旋转本质上是一个让元素不断改变其旋转角度的过程,我们可以通过JS创建一个变量来保存旋转角度的数值,每次修改该数值,…

    JavaScript 2023年6月11日
    00
  • 微信小程序的动画效果详解

    我来详细讲解一下“微信小程序的动画效果详解”的完整攻略。 一、动画效果简介 在微信小程序中,可以使用WXML和WXSS中的动画效果,通过制定一定的动画规则和样式来实现页面元素的动态效果。 具体实现是通过提供的3个基本动画帧(transition、 animation、 keyframes)来进行制作。 其中, transition 过渡动画是指某个元素在改变…

    JavaScript 2023年6月11日
    00
  • JavaScript输出

    JavaScript可以通过多种方式输出内容,本文将为您梳理常用的输出方式并提供相应的代码示例。 1. 使用alert()弹出框输出 alert()方法是一种简单快捷的输出方式,直接在页面上弹出一个窗口,展示指定内容。下面是一个例子。 alert("Hello World!"); 2. 使用console.log()控制台输出 conso…

    Web开发基础 2023年3月30日
    00
合作推广
合作推广
分享本页
返回顶部