`
eric_hwp
  • 浏览: 126605 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

多种信用卡的js验证

阅读更多

<script src="js/WebUIValidation.js" type="text/javascript"></script>
    <Script LANGUAGE="JavaScript" type="text/javascript">
    <!-- Begin
    var Cards = new makeArray(8);
    Cards[0] = new CardType("MasterCard", "51,52,53,54,55", "16");
    var MasterCard = Cards[0];
    Cards[1] = new CardType("VisaCard", "4", "13,16");
    var VisaCard = Cards[1];
    Cards[2] = new CardType("AmExCard", "34,37", "15");
    var AmExCard = Cards[2];
    Cards[3] = new CardType("DinersClubCard", "30,36,38", "14");
    var DinersClubCard = Cards[3];
    Cards[4] = new CardType("DiscoverCard", "6011", "16");
    var DiscoverCard = Cards[4];
    Cards[5] = new CardType("enRouteCard", "2014,2149", "15");
    var enRouteCard = Cards[5];
    Cards[6] = new CardType("JCBCard", "3088,3096,3112,3158,3337,3528", "16");
    var JCBCard = Cards[6];
    var LuhnCheckSum = Cards[7] = new CardType();

    /*************************************************************************\
    CheckCardNumber(form)
    function called when users click the "check" button.
    \*************************************************************************/
    function CheckCardNumber(form) {
    var tmpyear;
    //if (form.CardNumber.value.length == 0) {
    //alert("Please enter the CardNumber");
   // form.CardNumber.focus();
    //return false;
    //}
    if(form.ExpMon.value.length==0)
    {
     alert("Please enter the Expiration Month");
     form.ExpMon.focus();
     return false;
    }
    if(form.ExpMon.value<1|| form.ExpMon.value>12)
    {
      alert("The Expiration Month is not valid.");
      return false;
    }
    if (form.ExpYear.value.length == 0)
    {
        alert("Please enter the Expiration Year.");
        form.ExpYear.focus();
        return false;
    }
    if (form.ExpYear.value > 96)
    tmpyear = "19" + form.ExpYear.value;
    else if (form.ExpYear.value < 21)
    tmpyear = "20" + form.ExpYear.value;
    else
    {
    alert("The Expiration Year is not valid.");
    return false;
    }
   
    tmpmonth = form.ExpMon.value;
    // The following line doesn't work in IE3, you need to change it
    // to something like "(new CardType())...".
    // if (!CardType().isExpiryDate(tmpyear, tmpmonth)) {
    if (!(new CardType()).isExpiryDate(tmpyear, tmpmonth)) {
    alert("This card has already expired.");
    return false;
    }
    card = form.CardType.options[form.CardType.selectedIndex].value;
    var retval = eval(card + ".checkCardNumber(\"" + form.CardNumber.value +
    "\", " + tmpyear + ", " + tmpmonth + ");");
    cardname = "";
    if (retval)
     return true;
    else {
    // The cardnumber has the valid luhn checksum, but we want to know which
    // cardtype it belongs to.
                for (var n = 0; n < Cards.size; n++)
                 {
                    if (Cards[n].checkCardNumber(form.CardNumber.value, tmpyear, tmpmonth))
                         {
                            cardname = Cards[n].getCardType();
                            break;
                         }
                }
                if (cardname.length > 0) {
                alert("This looks like a " + cardname + " number, not a " + card + " number.");
                return false;
         }
   // else
   // {
              //  alert("This card number is not valid.");
              //  return false;
   
    // }

   }

}
    /*************************************************************************\
    Object CardType([String cardtype, String rules, String len, int year,
                                            int month])
    cardtype    : type of card, eg: MasterCard, Visa, etc.
    rules       : rules of the cardnumber, eg: "4", "6011", "34,37".
    len         : valid length of cardnumber, eg: "16,19", "13,16".
    year        : year of expiry date.
    month       : month of expiry date.
    eg:
    var VisaCard = new CardType("Visa", "4", "16");
    var AmExCard = new CardType("AmEx", "34,37", "15");
    \*************************************************************************/
    function CardType() {
    var n;
    var argv = CardType.arguments;
    var argc = CardType.arguments.length;

    this.objname = "object CardType";

    var tmpcardtype = (argc > 0) ? argv[0] : "CardObject";
    var tmprules = (argc > 1) ? argv[1] : "0,1,2,3,4,5,6,7,8,9";
    var tmplen = (argc > 2) ? argv[2] : "13,14,15,16,19";

    this.setCardNumber = setCardNumber;  // set CardNumber method.
    this.setCardType = setCardType;  // setCardType method.
    this.setLen = setLen;  // setLen method.
    this.setRules = setRules;  // setRules method.
    this.setExpiryDate = setExpiryDate;  // setExpiryDate method.

    this.setCardType(tmpcardtype);
    this.setLen(tmplen);
    this.setRules(tmprules);
    if (argc > 4)
    this.setExpiryDate(argv[3], argv[4]);

    this.checkCardNumber = checkCardNumber;  // checkCardNumber method.
    this.getExpiryDate = getExpiryDate;  // getExpiryDate method.
    this.getCardType = getCardType;  // getCardType method.
    this.isCardNumber = isCardNumber;  // isCardNumber method.
    this.isExpiryDate = isExpiryDate;  // isExpiryDate method.
    this.luhnCheck = luhnCheck;// luhnCheck method.
    return this;
    }

    /*************************************************************************\
    boolean checkCardNumber([String cardnumber, int year, int month])
    return true if cardnumber pass the luhncheck and the expiry date is
    valid, else return false.
    \*************************************************************************/
    function checkCardNumber() {
    var argv = checkCardNumber.arguments;
    var argc = checkCardNumber.arguments.length;
    var cardnumber = (argc > 0) ? argv[0] : this.cardnumber;
    var year = (argc > 1) ? argv[1] : this.year;
    var month = (argc > 2) ? argv[2] : this.month;

    this.setCardNumber(cardnumber);
    this.setExpiryDate(year, month);

    if (!this.isCardNumber())
    return false;
    if (!this.isExpiryDate())
    return false;

    return true;
    }
    /*************************************************************************\
    String getCardType()
    return the cardtype.
    \*************************************************************************/
    function getCardType() {
    return this.cardtype;
    }
    /*************************************************************************\
    String getExpiryDate()
    return the expiry date.
    \*************************************************************************/
    function getExpiryDate() {
    return this.month + "/" + this.year;
    }
    /*************************************************************************\
    boolean isCardNumber([String cardnumber])
    return true if cardnumber pass the luhncheck and the rules, else return
    false.
    \*************************************************************************/
    function isCardNumber() {
    var argv = isCardNumber.arguments;
    var argc = isCardNumber.arguments.length;
    var cardnumber = (argc > 0) ? argv[0] : this.cardnumber;
    if (!this.luhnCheck())
    return false;

    for (var n = 0; n < this.len.size; n++)
    if (cardnumber.toString().length == this.len[n]) {
    for (var m = 0; m < this.rules.size; m++) {
    var headdigit = cardnumber.substring(0, this.rules[m].toString().length);
    if (headdigit == this.rules[m])
    return true;
    }
    return false;
    }
    return false;
    }

    /*************************************************************************\
    boolean isExpiryDate([int year, int month])
    return true if the date is a valid expiry date,
    else return false.
    \*************************************************************************/
    function isExpiryDate() {
    var argv = isExpiryDate.arguments;
    var argc = isExpiryDate.arguments.length;

    year = argc > 0 ? argv[0] : this.year;
    month = argc > 1 ? argv[1] : this.month;

    if (!isNum(year+""))
    return false;
    if (!isNum(month+""))
    return false;
    today = new Date();
    expiry = new Date(year, month);
    if (today.getTime() > expiry.getTime())
    return false;
    else
    return true;
    }

    /*************************************************************************\
    boolean isNum(String argvalue)
    return true if argvalue contains only numeric characters,
    else return false.
    \*************************************************************************/
    function isNum(argvalue) {
    argvalue = argvalue.toString();

    if (argvalue.length == 0)
    return false;

    for (var n = 0; n < argvalue.length; n++)
    if (argvalue.substring(n, n+1) < "0" || argvalue.substring(n, n+1) > "9")
    return false;
    return true;
    }

    /*************************************************************************\
    boolean luhnCheck([String CardNumber])
    return true if CardNumber pass the luhn check else return false.
    Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl
    \*************************************************************************/
    function luhnCheck() {
    var argv = luhnCheck.arguments;
    var argc = luhnCheck.arguments.length;

    var CardNumber = argc > 0 ? argv[0] : this.cardnumber;

    if (! isNum(CardNumber)) {
    return false;
      }

    var no_digit = CardNumber.length;
    var oddoeven = no_digit & 1;
    var sum = 0;

    for (var count = 0; count < no_digit; count++) {
    var digit = parseInt(CardNumber.charAt(count));
    if (!((count & 1) ^ oddoeven)) {
    digit *= 2;
    if (digit > 9)
    digit -= 9;
    }
    sum += digit;
    }
    if (sum % 10 == 0)
    return true;
    else
    return false;
    }

    /*************************************************************************\
    ArrayObject makeArray(int size)
    return the array object in the size specified.
    \*************************************************************************/
    function makeArray(size) {
    this.size = size;
    return this;
    }

    /*************************************************************************\
    CardType setCardNumber(cardnumber)
    return the CardType object.
    \*************************************************************************/
    function setCardNumber(cardnumber) {
    this.cardnumber = cardnumber;
    return this;
    }

    /*************************************************************************\
    CardType setCardType(cardtype)
    return the CardType object.
    \*************************************************************************/
    function setCardType(cardtype) {
    this.cardtype = cardtype;
    return this;
    }

    /*************************************************************************\
    CardType setExpiryDate(year, month)
    return the CardType object.
    \*************************************************************************/
    function setExpiryDate(year, month) {
    this.year = year;
    this.month = month;
    return this;
    }

    /*************************************************************************\
    CardType setLen(len)
    return the CardType object.
    \*************************************************************************/
    function setLen(len) {
    // Create the len array.
    if (len.length == 0 || len == null)
    len = "13,14,15,16,19";

    var tmplen = len;
    n = 1;
    while (tmplen.indexOf(",") != -1) {
    tmplen = tmplen.substring(tmplen.indexOf(",") + 1, tmplen.length);
    n++;
    }
    this.len = new makeArray(n);
    n = 0;
    while (len.indexOf(",") != -1) {
    var tmpstr = len.substring(0, len.indexOf(","));
    this.len[n] = tmpstr;
    len = len.substring(len.indexOf(",") + 1, len.length);
    n++;
    }
    this.len[n] = len;
    return this;
    }

    /*************************************************************************\
    CardType setRules()
    return the CardType object.
    \*************************************************************************/
    function setRules(rules) {
    // Create the rules array.
    if (rules.length == 0 || rules == null)
    rules = "0,1,2,3,4,5,6,7,8,9";
     
    var tmprules = rules;
    n = 1;
    while (tmprules.indexOf(",") != -1) {
    tmprules = tmprules.substring(tmprules.indexOf(",") + 1, tmprules.length);
    n++;
    }
    this.rules = new makeArray(n);
    n = 0;
    while (rules.indexOf(",") != -1) {
    var tmpstr = rules.substring(0, rules.indexOf(","));
    this.rules[n] = tmpstr;
    rules = rules.substring(rules.indexOf(",") + 1, rules.length);
    n++;
    }
    this.rules[n] = rules;
    return this;
    }
    //  End -->
    </Script>



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/antiking/archive/2007/03/21/1536499.aspx

 

分享到:
评论

相关推荐

    信用卡表单验证插件Creditly.zip

    2. **实时验证**:使用JavaScript,Creditly能够实时检查用户输入的数据,如信用卡号、过期日期和安全码等,及时发现并提示错误,避免无效或不正确的交易请求。 3. **格式化输入**:自动格式化输入数据,如信用卡...

    jQuery信用卡验证插件 jQuery信用卡验证插件网页特效.zip

    2. 支持多种卡种:插件可以识别并验证多种类型的信用卡,如Visa、Mastercard、American Express等。 3. 错误提示:如果输入的信用卡号无效,插件将显示错误消息或改变视觉样式以指示错误。 4. 自定义设置:开发者...

    非常有用的信用卡验证插件

    - **多卡种支持**:兼容多种信用卡品牌,如Visa、Mastercard、American Express、Discover等。 - **安全增强**:可能集成额外的安全措施,如JavaScript加密,保护用户数据不被窃取。 3. 集成与部署: 这样的...

    js验证大全,非常棒的js验证,含有多种特效,是程序员必备的东东

    "js验证大全"是一个集合了多种JavaScript验证技术和特效的资源包,对于程序员来说,它是一个非常宝贵的参考资料。 首先,我们来看一下这个压缩包中包含的文件: 1. **Default.aspx**:这是一个ASP.NET网页文件,...

    信用卡表单验证插件Creditly.js

    Creditly.js是一个专为实现信用卡表单验证而设计的JavaScript插件。它简化了在网页上创建专业、直观的信用卡输入表单的过程,用户只需复制并粘贴提供的HTML、CSS和JavaScript代码,就能快速地构建出功能完备的信用卡...

    js验证大全,各种验证,很方便,很实用

    - **信用卡号验证**:通过Luhn算法检查信用卡号的合法性。 - **密码强度验证**:评估密码的复杂度,如包含字母、数字、特殊字符的组合。 3. **自定义验证** - **自定义正则表达式**:根据业务需求,编写个性化的...

    银行信用卡管理系统源代码

    总而言之,银行信用卡管理系统是一个复杂而全面的软件解决方案,它融合了数据库管理、网络通信、安全控制、事务处理、风险评估、税务计算等多种IT技术,旨在为用户提供安全、便捷的信用卡服务。

    万能通用智能JS表单验证

    4. **格式验证**:比如信用卡号、邮政编码等,需要按照特定格式输入。通过编写特定的正则表达式可以实现这类验证。 5. **实时验证**:在用户输入时即时给出反馈,提高用户体验。JS可以监听`input`事件并实时处理...

    一行代码搞定整站的表单验证js代码

    24. **信用卡号验证**:针对各种信用卡类型(如Visa, MasterCard)进行校验。 25. **车牌号验证**:依据国家和地区的车牌号码格式。 26. **JSON格式验证**:确认输入的字符串是有效的JSON格式。 这个“一行代码...

    javascript表单验证源码 齐全的表单验证

    JS表单验证包括限制表单为空、超过字数限制、长度限制、信用卡规则、邮箱有效性、url验证、ip有效性、不能为零、大小写验证、日期验证等等多种认证,也可自己添加规则。 已封装,可以直接调用。

    jquery.validate.js表单验证.pdf

    文件列出了jquery.validate.js提供的多种表单验证规则,包括required(必填)、email(电子邮件格式)、url(URL格式)、date(日期格式)、dateISO(ISO日期格式)、number(数字)、digits(数字)、creditcard...

    SSH信用卡管理系统

    SSH信用卡管理系统是一个基于Java Web开发的综合应用,利用了Struts2、Spring和Hibernate三大主流开源框架,结合Ajax技术以实现高效、动态的用户交互。这个系统主要用于管理信用卡相关的业务,如用户信息管理、信用...

    毕设-信用卡管理系统.zip

    综上所述,信用卡管理系统的开发涉及到多种技术,包括前端交互、后端业务逻辑、数据库设计、安全性保障以及高并发处理。每个环节都需要精心设计和实现,以提供稳定、高效的服务。这样的毕设项目对于提升学生的综合...

    jQuery.validate.js表单验证及API

    2. **支付表单**:验证信用卡号、有效期等信息的正确性。 3. **调查问卷**:检查必填项,防止无效数据提交。 **优化与技巧** 1. **异步验证**:利用AJAX实现对数据的后台验证,如邮箱的唯一性检查。 2. **动态验证...

    jQuery表单验证大全

    `additional-methods.js`文件包含了jQuery Validate的扩展验证方法,例如`creditcard`(信用卡号验证)、`date`(日期格式验证)等。引入此文件后,开发者可以使用更多预定义的验证规则。 6. **日志和版本控制** `...

    jquery validate.js表单验证的基本用法入门

    - **creditcard**: 信用卡号码验证。 - **equalTo**: 字段值与另一个指定字段相等。 - **accept**: 文件后缀名验证。 - **maxlength**: 最大长度限制。 - **minlength**: 最小长度限制。 - **rangelength**: 长度...

    表单验证插件(jquery)1.0.4版本

    2. `additional-methods.js`: 可能包含了额外的验证方法,比如对邮编、信用卡号等的验证。 3. CSS文件:用于定义验证时的样式,如错误消息的样式。 4. 示例或文档:可能包含示例代码和插件的使用指南,帮助开发者...

    JQueryValidate验证说明

    - `creditcard`: 验证是否为有效的信用卡号。 - `equalTo`: 比较两个字段的值是否相等。 - `accept`: 验证文件扩展名是否符合指定的模式。 - `remote`: 进行远程服务器验证,服务器返回`true`表示验证通过,`false`...

    jQuery验证控件jquery.validate.js使用说明+中文API

    9. `creditcard`: 必须输入合法的信用卡号 10. `equalTo`: 输入值必须和 #field 相同 11. `accept`: 输入拥有合法后缀名的字符串(上传文件的后缀) 12. `maxlength`: 输入长度最多是 5 的字符串(汉字算一个字符) ...

Global site tag (gtag.js) - Google Analytics