`
郑云飞
  • 浏览: 813958 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jquery身份证号码校验

 
阅读更多
一、js文件中先写入的文件
$(document).ready(function () {
    jQuery.validator.addMethod("isIdCardNo", function (value, element) {
        return this.optional(element) || isIdCardNo(value);
    }, "请正确输入您的身份证号码");
});
//增加身份证验证
function isIdCardNo(num) {
    var factorArr = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
    var parityBit = new Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2");
    var varArray = new Array();
    var intValue;
    var lngProduct = 0;
    var intCheckDigit;
    var intStrLen = num.length;
    var idNumber = num;
    // initialize
    if ((intStrLen != 15) && (intStrLen != 18)) {
        return false;
    }
    // check and set value
    for (i = 0; i < intStrLen; i++) {
        varArray[i] = idNumber.charAt(i);
        if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
            return false;
        } else if (i < 17) {
            varArray[i] = varArray[i] * factorArr[i];
        }
    }
    if (intStrLen == 18) {
        //check date
        var date8 = idNumber.substring(6, 14);
        if (isDate8(date8) == false) {
            return false;
        }
        // calculate the sum of the products
        for (i = 0; i < 17; i++) {
            lngProduct = lngProduct + varArray[i];
        }
        // calculate the check digit
        intCheckDigit = parityBit[lngProduct % 11];
        // check last digit
        if (varArray[17] != intCheckDigit) {
            return false;
        }
    }
    else {        //length is 15
        //check date
        var date6 = idNumber.substring(6, 12);
        if (isDate6(date6) == false) {
            return false;
        }
    }
    return true;
}
function isDate6(sDate) {
    if (!/^[0-9]{6}$/.test(sDate)) {
        return false;
    }
    var year, month, day;
    year = sDate.substring(0, 4);
    month = sDate.substring(4, 6);
    if (year < 1700 || year > 2500) return false
    if (month < 1 || month > 12) return false
    return true
}

function isDate8(sDate) {
    if (!/^[0-9]{8}$/.test(sDate)) {
        return false;
    }
    var year, month, day;
    year = sDate.substring(0, 4);
    month = sDate.substring(4, 6);
    day = sDate.substring(6, 8);
    var iaMonthDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    if (year < 1700 || year > 2500) return false
    if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1] = 29;
    if (month < 1 || month > 12) return false
    if (day < 1 || day > iaMonthDays[month - 1]) return false
    return true
}
二、调用插件后,js添加的代码。
$(function() {
 $("#active").validate({
  rules: {
   FMobileNumber: {
    required: true,
    number:true,
    minlength:7
   }
  },
  messages: {
   FMobileNumber: {   
    required: "必须填写",
    number:'请输入正确的手机号, 必须为数字',
    minlength: jQuery.format("手机至少包含{0}个字")
   }
  },
  errorPlacement: function(error, element) {
   error.appendTo(element.parent().next().next());
  }
 });
});

 

三、html代码
   <div class="form-row">
   <span class="label userfloat"><b>*</b>姓&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;名:</span>
   <span class="afterfloat">
    <input type="text" id="FullName" class="inputarea userCfloat loginInput required" name="FullName" value="<?= set_value('FullName') ?>"/>
    <span class="userRfloat">请填写您的真实姓名</span>
    <div class="clear"></div>
   </span>
   <div class="clear"></div>
   <span class="afterw"></span>
   <div class="clear"></div>
  </div>
  <div class="clear"></div>
  <div class="form-row">
   <span class="label userfloat"><b>*</b>身&nbsp;份&nbsp;&nbsp;证:</span>
   <span class="afterfloat">
    <input type="text" id="FIdNumber" class="inputarea userCfloat loginInput {required:true,isIdCardNo:true}" name="FIdNumber" value="<?= set_value('FIdNumber'); ?>" />
    <span class="userRfloat">请您填写真实证件号</span>
    <div class="clear"></div>
   </span>
   <div class="clear"></div>
   <span class="afterw"></span>
   <div class="clear"></div>
  </div>
  <div class="clear"></div>
  <div class="form-row"> <span class="label userfloat"><b>*</b>性&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;别:</span>
    <select name="FSex" class="inputarea userCfloat loginInput">
      <option value="男"<?php if(set_value('FSex')=='男'){ ?> selected="selected"<?php } ?>>男</option>
      <option value="女"<?php if(set_value('FSex')=='女'){ ?> selected="selected"<?php } ?>>女</option>
    </select>
  </div>
  <div class="clear"></div>
  <div class="form-row">
   <span class="label userfloat"><b>*</b>出生日期: </span>
   <span class="afterfloat">
    <input type="text" id="FBirthday"  onfocus="WdatePicker({maxDate:'2020-10-01', dateFmt:'yyyy-MM-dd'})" class="Wdate inputarea userCfloat loginInput required" name="FBirthday" value="<?= set_value('FBirthday'); ?>" />
    <span class="userRfloat" style="color:red">生日格式:如:1970-02-19</span>
    <div class="clear"></div>
   </span>
   <div class="clear"></div>
   <span class="afterw"></span>
   <div class="clear"></div>
  </div>
  <div class="clear"></div>
  <div class="form-row">
   <span class="label userfloat"><b>*</b>手&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;机:</span>
   <span class="afterfloat">
    <input type="text" id="FMobileNumber" class="inputarea userCfloat loginInput" name="FMobileNumber" value="<?= set_value('FMobileNumber'); ?>" />
    <span class="userRfloat">密码遗忘或被盗时,可通过手机短信取回</span>
    <div class="clear"></div>
   </span>
   <div class="clear"></div>
   <span class="afterw"></span>
   <div class="clear"></div>
  </div>
  <div class="clear"></div>
  <div class="form-row">
   <span class="label userfloat"><b>*</b>邮&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;箱:</span>
   <span class="afterfloat">
    <input type="text" id="FEMail" class="inputarea userCfloat loginInput required email" name="FEMail" value="<?= set_value('FEMail'); ?>" />
    <span class="userRfloat">密码遗忘或被盗时,可通过邮箱取回</span>
    <div class="clear"></div>
   </span>
   <div class="clear"></div>
   <span class="afterw"></span>
   <div class="clear"></div>
  </div>
  <div class="clear"></div>
  <div class="form-row">
   <span class="label userfloat">QQ&nbsp;号&nbsp;码:</span>
   <input type="text" id="FQQ" class="inputarea userCfloat loginInput" name="FQQ" value="<?= set_value('FQQ'); ?>" />
   <div class="clear"></div>
  </div>

 

分享到:
评论

相关推荐

    jquery.validate 扩展身份证校验方法

    ### jQuery.validate 扩展身份证校验方法 在前端开发中,对用户输入的数据进行校验是非常重要的一步,它能够帮助开发者提高数据的准确性和安全性。本文将详细介绍如何使用`jQuery.validate`插件来扩展身份证号码的...

    一个有关身份证号码校验的JS代码

    一个有关身份证号码校验的JS代码,需要jquery支持。

    jquery 校验中国身份证号码实例详解

    在介绍jQuery校验中国身份证号码的过程中,首先需要了解身份证号码的组成。根据描述,中国第二代身份证号码为18位数字码,由六位地区码、八位生日码、三位顺序码和一位校验码组成。其中地区码为行政区划代码,生日码...

    身份证号码验证程序 javascript验证的html文件

    3. **身份证号码验证规则**:中国的身份证号码由18位数字组成,包括地区码、出生日期码、顺序码和校验码。验证时需检查: - 地区码:前6位,代表出生地的行政区域代码。 - 出生日期码:第7位到第14位,表示出生...

    jquery判断身份证

    根据给定的信息,本文将详细解释如何利用jQuery技术来判断身份证号码的真实性,并解析代码中的关键逻辑与实现原理。 ### 一、引言 在实际应用中,验证用户提供的身份证号码的有效性和真实性非常重要。通过准确地...

    ASP.NET源码——身份证号码验证示例源码.zip

    身份证号码(ID Card Number)由18位数字组成,分为五个部分:地区码、出生日期码、顺序码、校验码。在 ASP.NET 中实现身份证号码验证,需要对这些组成部分进行逐一检查。首先,验证字符串长度是否为18位,然后检查...

    jQuery实现从身份证号中获取出生日期和性别的方法分析

    - 第18位是校验码,用于检验身份证号码的正确性。 性别信息不是直接显示在身份证号码中的,但可以通过15位或17位身份证号码的倒数第二位数字来判断: - 奇数表示男性 - 偶数表示女性 ### 提取出生日期和性别 在...

    只允许输入数字、身份证、座机的js插件

    身份证号码在中国通常由18位数字组成,包含地区码、出生日期码、顺序码和校验码;而座机电话号码一般由区号(3或4位数字)和电话号码(7或8位数字)组成,全部为数字。因此,插件需要能够正确验证这些格式。 在...

    jQuery的校验控件的改修

    例如,可能增加了对特殊字段的验证,如身份证号码、邮政编码或者自定义的日期格式。开发者可能通过编写自定义验证方法来实现这些功能,这些方法通常以函数的形式存在,接收用户输入值作为参数,然后返回true或false...

    身份证分析器插件jQuery-IDCard.js

    除了校验码,`jQuery-IDCard.js`还能解析身份证号码中的其他信息。例如,从身份证号码中提取出生日期,可以用于自动填充用户的生日信息;根据地区编码,可以获取到用户大致的籍贯信息;性别则可以通过奇偶位判断,...

    页面验证(图片,邮箱,身份证号码)

    身份证号码的验证相对复杂,涉及到特定的校验规则。可以编写一个函数,利用正则表达式初步判断格式,然后进行进一步的校验: ```javascript function validateID(id) { var regex = /(^\d{15}$)|(^\d{18}$)|(^\d{...

    身份证验证的js文件 (jquery)

    身份证验证 jquery js validate验证

    jQuery如何用正则表达式验证手机号、身份证号、中文名称

    本文将详细介绍如何使用jQuery结合正则表达式来验证手机号码、身份证号码以及中文名称。 首先,我们需要了解正则表达式的基础知识。正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,每个字母...

    jquery表单验证框架提供的身份证验证方法(示例代码)

    ### 身份证校验码计算规则 根据中国第二代身份证的标准,校验码的计算方法如下: - 将身份证号码前17位数字分别乘以不同的系数。从第一位到第十七位的系数分别是:7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8,...

    jQuery easyui的validatebox校验规则扩展及easyui校验框validatebox用法

    自定义校验规则包括身份证号码验证、整数校验和合法数字校验。对于身份证号码校验,利用了自定义函数checkIdCardNo来进行逻辑校验;整数和合法数字的校验则使用了正则表达式来匹配。 7. 使用自定义校验规则:要使用...

    JavaScript截取手机号码 手机验证 身份证验证等等

    在网页开发中,常常需要处理用户的输入,例如手机号码和身份证号码的验证,以确保用户提供的信息是有效且安全的。本篇文章将深入探讨如何使用JavaScript进行手机号码和身份证号码的截取与验证。 手机号码验证: 在...

    身份证校验及提取信息插件IDCardPaser

    《身份证校验及提取信息插件IDCardPaser详解》 在信息技术日益发达的今天,身份证信息的验证和提取在很多场景中变得至关重要。IDCardPaser是一款专门针对身份证号码进行校验和信息提取的JavaScript插件,尤其适用于...

    jQuery邮箱、电话(包含手机验证)、身份证验证

    // 如果需要更精确的验证,需要引入身份证校验算法 // ... ``` 在实际应用中,你可能需要根据项目需求对这些验证方法进行扩展,例如添加自定义错误消息、提示信息或使用异步请求验证电话号码的可用性。在提供的...

    jquery正则表达式验证(手机号、身份证号、中文名称)

    本文介绍了如何利用JQuery结合正则表达式来实现手机号、身份证号码和中文名称的验证。通过具体的应用实例,展示了如何将这些验证规则应用于HTML表单验证的全过程。掌握这些知识点,能够有效地提升前端数据处理的准确...

Global site tag (gtag.js) - Google Analytics