js身份证判断方法支持15位和18位_javascript技巧

复制代码 代码如下:

//HTML页面上要有一个id为identity_card的input输入框,一个id为ipmessage的身份证错误或正确时提示消息的地方
<script>
//身份证验证
$(document).ready(function(){
$("#identity_card").change(function(){
var idcard =$(this).val();
checkDate(idcard );
});
});
//身份证
function checkDate( idcard ){
var socialNo = idcard;
if(socialNo == "")
{
$('#ipmessage').html('输入身份证号码格式不正确,必须是15位到18位的身份证号');
alert("输入身份证号码不能为空!");
return (false);
}
if (socialNo.length != 15 && socialNo.length != 18)
{
$('#ipmessage').html('输入身份证号码格式不正确,必须是15位到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) {
$('#ipmessage').html('输入身份证号码格式不正确,必须是15位到18位的身份证号');
alert("身份证号码不正确(地区非法)!");
return (false);
}
if (socialNo.length == 15)
{
pattern= /^\d{15}$/;
if (pattern.exec(socialNo)==null){
$('#ipmessage').html('输入身份证号码格式不正确,必须是15位到18位的身份证号');
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) {
$('#ipmessage').html('输入身份证号码格式不正确,必须是15位到18位的身份证号');
alert('输入身份证号码不格式正确!');
return false;
}
break;
case '04':
case '06':
case '09':
case '11':
if(day>30) {
$('#ipmessage').html('输入身份证号码格式不正确,必须是15位到18位的身份证号');
alert('输入身份证号码不格式正确!');
return false;
}
break;
case '02':
if((birth % 4 == 0 && birth % 100 != 0) || birth % 400 == 0) {
if(day>29) {
$('#ipmessage').html('输入身份证号码格式不正确,必须是15位到18位的身份证号');
alert('输入身份证号码不格式正确!');
return false;
}
} else {
if(day>28) {
$('#ipmessage').html('输入身份证号码格式不正确,必须是15位到18位的身份证号');
alert('输入身份证号码不格式正确!');
return false;
}
}
break;
default:
$('#ipmessage').html('输入身份证号码格式不正确,必须是15位到18位的身份证号');
alert('输入身份证号码不格式正确!');
return false;
}
var nowYear = new Date().getYear();
if(nowYear - parseInt(birth)<15 || nowYear - parseInt(birth)>100) {
$('#ipmessage').html('输入身份证号码格式不正确,必须是15位到18位的身份证号');
alert('输入身份证号码不格式正确!');
return false;
}
$('#ipmessage').html('通过!');
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' )
{
$('#ipmessage').html('输入身份证号码格式不正确,必须是15位到18位的身份证号');
alert("输入身份证号码格式不正确!");
return (false);
}
else
{
nNum = socialNo.charAt(i) - '0';
}
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' )
{
$('#ipmessage').html('输入身份证号码格式不正确,必须是15位到18位的身份证号');
alert("输入身份证号码格式不正确!");
return (false);
}
else
{
lSum += ( socialNo.charAt(17) - '0' ) * Wi[17];
}
if ( (lSum % 11) == 1 )
{
$('#ipmessage').html('通过!');
return true;
}
else
{
$('#ipmessage').html('输入身份证号码格式不正确,必须是15位到18位的身份证号');
alert("输入身份证号码格式不正确!");
return (false);
}
}
</script>

时间: 2024-10-29 08:31:58

js身份证判断方法支持15位和18位_javascript技巧的相关文章

js身份证判断方法支持15位和18位

 这篇文章主要介绍了js身份证判断方法支持15位和18位,需要的朋友可以参考下 代码如下: //HTML页面上要有一个id为identity_card的input输入框,一个id为ipmessage的身份证错误或正确时提示消息的地方  <script>  //身份证验证  $(document).ready(function(){  $("#identity_card").change(function(){  var idcard =$(this).val();  che

JS导出PDF插件的方法(支持中文、图片使用路径)_javascript技巧

在WEB上想做一个导出PDF的功能,发现jsPDF比较多人推荐,遗憾的是不支持中文,最后找到pdfmake,很好地解决了此问题.它的效果可以先到http://pdfmake.org/playground.html查看.在使用过程中,还发现图片的插入是相对繁琐的一件事. 针对这些问题,本文的主要内容可分为三部分: •pdfmake的基本使用方法: •如何解决中文问题; •如何通过指定图片地址插入图片. pdfmake的基本使用方法 1.包含以下两个文件 <script src="build/

js怎么判断flash swf文件是否加载完毕_javascript技巧

js怎么判断flash是否加载完毕了呢? 我们怎么在flash加载完毕之时,回调一个我们设定的js函数? 这个问题,一直困扰了我很久,直到今天,请教了一个非常牛B的人物之后,突然来了感觉! 呵呵,也许,这个问题在你们看来不是问题,不过对于我来说,确实是个问题,因为我一直不知道该怎么判断swf文件是否加载完毕了? 从前都是只知道img.onload等等. 好了,言归正传,我们到底该怎样判断一个flash是否加载完了呢? 没错,就是轮询,然后判断flash的某个方法是否能正常运行? 示例如下(伪代码

Js如何判断客户端是PC还是手持设备简单分析_javascript技巧

在工作过程中,许多朋友会经常用到js判断客户端是PC还是手持设备,今天将提供以下方法function IsPC() { var userAgentInfo = navigator.userAgent; var Agents = new Array("Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"); var

js定时调用方法成功后并停止调用示例_javascript技巧

复制代码 代码如下: <pre name="code" class="javascript"><pre name="code" class="javascript"> <span style="color: rgb(58, 62, 67); font-family: 'Segoe UI Semibold', 'Segoe UI', 'Lucida Grande', Verdana, Ar

JS代码判断IE6,IE7,IE8,IE9的函数代码_javascript技巧

做网页有时候会用到JS检测IE的版本,下面是检测Microsoft Internet Explorer版本的三种代码! 第一种: 复制代码 代码如下: <script type="text/javascript"> var browser=navigator.appName var b_version=navigator.appVersion var version=b_version.split(";"); var trim_Version=versi

js判读浏览器是否支持html5的canvas的代码_javascript技巧

复制代码 代码如下: <canvas id="myCanvas" width="300" height="200" style="border:1px solid #c3c3c3;"> Your browser does not support the canvas element. </canvas> <script type="text/javascript"> va

15位和18位身份证JS校验的简单实例_javascript技巧

一.身份证号码的结构和表示形式 1.号码的结构 根据[中华人民共和国国家标准GB11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码. 2.地址码 表示编码对象常住户口所在县(市.旗.区)的行政区划代码,按GB/T2260的规定执行. 3.出生日期码 表示编码对象出生的年.月.日,按GB/T7408的规定执行,年.月.日代码之间不用分隔符. 4.顺序

javascript身份证检验正则表达式(支持15,18位及省份差别)

做这个其实不难,在网上多找一下总会有意外收获的.但是工欲善其事,必先利其器.我们需要了解一下身份证号的规则,知己知彼百战不殆. 身份证号有15位和18位长度两种,15位的时候,都是数字,但是18位长度的时候可能有校验位(X),所以只校验数字是不够的了. 另外身份证号可以看出一个人的年龄,出生所在地(身份证所在地?)等等,这些对我们来讲都是有用的数据.  代码如下 复制代码 <script type='text/javascript' src='card.js'></script>