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笛卡尔积超简单实现算法示例:完整攻略 什么是笛卡尔积 笛卡尔积是组合数学中的一种运算,指的是将两个集合看作是笛卡尔坐标系上的两个维度,然后将它们组合在一起,形成一个新的集合的所有可能的组合。 举个例子,假设集合A={1, 2},集合B={x, y},它们的笛卡尔积就是{(1, x), (1, y), (2, x), (2, y)}。 在编…

    JavaScript 2023年5月28日
    00
  • 原生Js实现按的数据源均分时间点幻灯片效果(已封装)

    首先我们先来介绍一下“原生Js实现按的数据源均分时间点幻灯片效果(已封装)”这个内容的基本概念和核心思路。 概念 “原生Js实现按的数据源均分时间点幻灯片效果(已封装)”是一种基于JavaScript的动态网页效果,它能够将一组图片或其他内容按照时间轴分隔显示,形成一种轮播的效果,具有视觉感受强烈、增加动态感的特点。 核心思路 该功能的实现核心思想是,将网页…

    JavaScript 2023年5月27日
    00
  • JSON.stringify转换JSON时日期时间不准确的解决方法

    当使用JSON.stringify方法将JavaScript对象转换成JSON字符串时,日期时间类型的值会被转换成字符串类型,而且格式并不符合ISO8601标准。例如,使用JSON.stringify方法将new Date()转换成JSON字符串时,会得到如下结果: "2021-05-27T09:57:45.730Z" 其中,日期时间的格…

    JavaScript 2023年5月27日
    00
  • Javascript 调用 ActionScript 的简单方法

    要在 JavaScript 中调用 ActionScript,可以借助 Adobe Flash 中提供的 ExternalInterface 类,该类的作用是为 ActionScript 提供一种在 Flash Player 中嵌入 JavaScript 代码的通信桥梁,使得 JavaScript 可以调用 ActionScript 中的函数或方法。 以下是…

    JavaScript 2023年5月27日
    00
  • javascript设计模式 – 状态模式原理与用法实例分析

    下面是“javascript设计模式 – 状态模式原理与用法实例分析”的完整攻略,包括原理、用法实例分析和示例说明。 前言 状态模式是一种行为型模式,它用一种更好的方式来处理对象状态之间的转换。在这篇文章中,我们将讨论状态模式的原理和用法实例分析。 状态模式原理 状态模式是一种通过使用状态和转换来实现状态转换的行为型模式。在这种模式中,状态表示为一个对象,而…

    JavaScript 2023年6月10日
    00
  • 使用js dom和jquery分别实现简单增删改

    下面我来详细讲解使用JS DOM和jQuery分别实现简单增删改的完整攻略。 使用JS DOM实现简单增删改 首先我们需要明确一下,JS DOM是指通过JavaScript来操作DOM元素,实现交互效果的一种技术。下面是详细的步骤: 添加元素 首先,我们需要一个按钮,并绑定一个事件,当用户点击按钮时会自动创建一个新的元素。具体代码如下: <!DOCTY…

    JavaScript 2023年6月10日
    00
  • javascript中json对象json数组json字符串互转及取值方法

    下面是“JavaScript中JSON对象、JSON数组、JSON字符串互转及取值方法”的完整攻略: 1. JSON对象 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,其数据格式和JavaScript对象的格式类似。在JavaScript中,可以通过JSON对象来解析JSON字符串,也可以将JavaScript对…

    JavaScript 2023年5月27日
    00
  • JavaScript 中的单例内置对象Global 与 Math

    JavaScript 中的单例内置对象 Global 是指在整个 JavaScript 运行时期内始终存在的对象,它是所有全局变量和函数的宿主。它提供了很多通用的功能和属性,如全局变量、内存管理、计时器、调试工具等,可以被任何代码访问和使用。下面我们来讲解 Global 对象和 Math 对象的详细内容。 Global 对象 Global 对象是每一个 Ja…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部