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日

相关文章

  • js读取json的两种常用方法示例介绍

    下面是详细的攻略: JS读取JSON的两种常用方法示例介绍 简介 JSON(JavaScript Object Notation)是一种数据交换格式,它具有轻量、易读、易写等特点,并且在前后端分离的开发模式中得到了广泛应用。本篇文章主要介绍JS读取JSON的两种常用方法,以及实际代码示例。 方法一:XMLHttpRequest XMLHttpRequest对…

    JavaScript 2023年5月27日
    00
  • element-ui的回调函数Events的用法详解

    下面是element-ui的回调函数Events的用法详解。 什么是Events? Events是element-ui中处理组件事件的一种机制,是一个Vue中的事件对象。和原生的事件对象相比,Events在提供原生事件对象的基础上,提供了一些额外的方法和属性。Events被广泛应用在element-ui组件中,例如Button、Input、Select、Da…

    JavaScript 2023年6月10日
    00
  • jquery 表单进行客户端验证demo

    以下是详细的攻略: jQuery 表单进行客户端验证 在使用表单提交数据之前,通常需要对表单进行客户端验证,以避免无效的数据被提交到后台服务器。jQuery 是一种非常流行的 JavaScript 库,可以方便地实现表单验证功能。 接下来我们将向您展示如何使用 jQuery 对表单进行客户端验证。以下是大致的步骤: 引入 jQuery JS 库。在 HTML…

    JavaScript 2023年6月10日
    00
  • quickjs 封装 JavaScript 沙箱详情

    下面我将详细讲解如何封装JavaScript沙箱并提供两个实例说明。 QuickJS 封装 JavaScript 沙箱 前置要求 在开始封装JavaScript沙箱前,我们需要了解以下知识: QuickJS: 一款高效的Javascript引擎 沙箱: 限制JavaScript执行环境,避免恶意代码执行或获取主程序敏感信息 思路与方案 为了实现封装JavaS…

    JavaScript 2023年6月10日
    00
  • JavaScript实现弹出模态窗体并接受传值的方法

    下面是 JavaScript 实现弹出模态窗体并接受传值的方法的攻略: 原理分析 在 JavaScript 中,我们可以通过调用 window.open 方法来打开一个新窗口,也可以通过调用 window.showModalDialog 方法来打开模态窗口。其中,模态窗口是一种类似于对话框的窗口方式,可以禁止用户在不关闭窗口的情况下操作父窗口。 在模态窗口中…

    JavaScript 2023年6月11日
    00
  • html5将图片转换成base64的实例代码

    为了将图片转换成base64,可以使用以下步骤: 首先,将图片上传到网站服务器。这可以通过FTP或通过应用程序的文件上传功能来完成。 一旦图片上传成功,可以使用以下方法之一将其转换为base64编码: 使用在线base64编码转换工具:可以通过搜索引擎找到许多在线工具。一般情况下,这些工具只需要将图片上传到它们的服务器,然后返回base64字符串。但需要注意…

    JavaScript 2023年5月19日
    00
  • JavaScript利用canvas实现炫酷的碎片切图效果

    JavaScript利用canvas实现炫酷的碎片切图效果是一种非常流行的前端动画效果。下面是该攻略的详细步骤: 1. 准备工作 首先,需要在HTML文件中引入一个canvas元素,并为其指定宽度和高度。然后,在JavaScript文件中获取canvas元素,以便后续操作。 <canvas id="canvas" width=&qu…

    JavaScript 2023年6月11日
    00
  • vue后台返回格式为二进制流进行文件的下载方式

    当我们在处理后台返回的文件下载数据时,有时候会遇到后台返回数据格式为二进制流的情况。这种格式的数据在前端界面上无法直接显示,需要通过特殊的处理方式进行文件下载。下面是完整攻略。 1. 后台设置content-type 第一步是需要后台在返回数据时设置content-type为“application/octet-stream”,这个content-type是…

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