js 验证身份证号

2024-06-06 11:18
文章标签 js 验证 身份证号

本文主要是介绍js 验证身份证号,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

function checkCardId(){ var socialNo = document.getElementById("idcard").value;if(socialNo == "")  {  alert("输入身份证号码不能为空!");  return (false);  }  if (socialNo.length != 15 && socialNo.length != 18)  {  alert("输入身份证号码格式不正确!");  return (false);  }  var area={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:"国外"};   if(area[parseInt(socialNo.substr(0,2))]==null) {  alert("身份证号码不正确(地区非法)!");  return (false);  }   if (socialNo.length == 15)  {  pattern= /^\d{15}$/;  if (pattern.exec(socialNo)==null){  alert("15位身份证号码必须为数字!");  return (false);  }  var birth = parseInt("19" + socialNo.substr(6,2));  var month = socialNo.substr(8,2);  var day = parseInt(socialNo.substr(10,2));  switch(month) {  case '01':  case '03':  case '05':  case '07':  case '08':  case '10':  case '12':  if(day>31) {  alert('输入身份证号码不格式正确!');  return false;  }  break;  case '04':  case '06':  case '09':  case '11':  if(day>30) {  alert('输入身份证号码不格式正确!');  return false;  }  break;  case '02':  if((birth % 4 == 0 && birth % 100 != 0) || birth % 400 == 0) {  if(day>29) {  alert('输入身份证号码不格式正确!');  return false;  }  } else {  if(day>28) {  alert('输入身份证号码不格式正确!');  return false;  }  }  break;  default:  alert('输入身份证号码不格式正确!');  return false;  }  var nowYear = new Date().getYear();  if(nowYear - parseInt(birth)<15 || nowYear - parseInt(birth)>100) {  alert('输入身份证号码不格式正确!');  return false;  }  return (true);  }  var Wi = new Array(  7,9,10,5,8,4,2,1,6,  3,7,9,10,5,8,4,2,1  ); var   lSum        = 0;  var   nNum        = 0;  var   nCheckSum   = 0;  for (i = 0; i < 17; ++i)  {  if ( socialNo.charAt(i) < '0' || socialNo.charAt(i) > '9' )  {  alert("输入身份证号码格式不正确!");  return (false);  }  else  {  nNum = socialNo.charAt(i) - '0';  }  var ss = Wi[i];lSum += nNum * Wi[i];  }if( socialNo.charAt(17) == 'X' || socialNo.charAt(17) == 'x')  {  lSum += 10*Wi[17];  }  else if ( socialNo.charAt(17) < '0' || socialNo.charAt(17) > '9' )  {  alert("输入身份证号码格式不正确!");  return (false);  }  else  {  lSum += ( socialNo.charAt(17) - '0' ) * Wi[17];  }  if ( (lSum % 11) == 1 )  {  alert("正确!");return true;  }  else  {  alert("身份证号码格式不正确!");  return (false);  }  }

 

<input type="text" id="idcard" size="30" />
&nbsp;&nbsp;
<input type="button" id="btn" οnclick="javascript:checkCardId();" />

 

 

这篇关于js 验证身份证号的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1035957

相关文章

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

在Node.js中使用.env文件管理环境变量的全过程

《在Node.js中使用.env文件管理环境变量的全过程》Node.js应用程序通常依赖于环境变量来管理敏感信息或配置设置,.env文件已经成为一种流行的本地管理这些变量的方法,本文将探讨.env文件... 目录引言为什么使php用 .env 文件 ?如何在 Node.js 中使用 .env 文件最佳实践引

Java JDK Validation 注解解析与使用方法验证

《JavaJDKValidation注解解析与使用方法验证》JakartaValidation提供了一种声明式、标准化的方式来验证Java对象,与框架无关,可以方便地集成到各种Java应用中,... 目录核心概念1. 主要注解基本约束注解其他常用注解2. 核心接口使用方法1. 基本使用添加依赖 (Maven

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

MySQL 主从复制部署及验证(示例详解)

《MySQL主从复制部署及验证(示例详解)》本文介绍MySQL主从复制部署步骤及学校管理数据库创建脚本,包含表结构设计、示例数据插入和查询语句,用于验证主从同步功能,感兴趣的朋友一起看看吧... 目录mysql 主从复制部署指南部署步骤1.环境准备2. 主服务器配置3. 创建复制用户4. 获取主服务器状态5

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

Spring Security中用户名和密码的验证完整流程

《SpringSecurity中用户名和密码的验证完整流程》本文给大家介绍SpringSecurity中用户名和密码的验证完整流程,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 首先创建了一个UsernamePasswordAuthenticationTChina编程oken对象,这是S

使用Python获取JS加载的数据的多种实现方法

《使用Python获取JS加载的数据的多种实现方法》在当今的互联网时代,网页数据的动态加载已经成为一种常见的技术手段,许多现代网站通过JavaScript(JS)动态加载内容,这使得传统的静态网页爬取... 目录引言一、动态 网页与js加载数据的原理二、python爬取JS加载数据的方法(一)分析网络请求1