【问题标题】:jQuery ISBN no validate: How to validated ISBN number formats? [duplicate]jQuery ISBN novalidate:如何验证 ISBN 编号格式? [复制]
【发布时间】:2015-10-10 17:48:18
【问题描述】:

我正在使用 jQuery 验证插件。如何在 jQuery 规则或模式或正则表达式中验证 ISBN 数字格式?是否有任何正则表达式来实现这一点? 请分享您的想法。

jQuery.validator.addMethod("isbnNo", function(value, element) {
    return isValidISBN(value);
}, "Please enter valid ISBN number");

// ISBN Number validationValidation
function isValidISBN(isbn) {
      isbn = isbn.replace(/[^\dX]/gi, '');
      if(isbn.length < 10 || isbn.length > 13){
        return false;
      }
      var chars = isbn.split('');
      if(chars[9].toUpperCase() == 'X'){
        chars[9] = 10;
      }
      var sum = 0;
      for (var i = 0; i < chars.length; i++) {
        sum += ((10-i) * parseInt(chars[i]));
      };
      return ((sum % 11) == 0);
     }

【问题讨论】:

    标签: jquery jquery-validate


    【解决方案1】:

    用于验证 ISBN 号。您可以向 jquery 验证器添加自定义规则,例如:

    jQuery.validator.addMethod("ruleName", function(value, element) {
        return (condition);
    }, "Custom Error message");
    

    然后将其添加到表单中:

    $('#formId').validate({
        rules : {
            fieldName : { ruleName : true }
        }
    });
    

    http://neilang.com/articles/how-to-check-if-an-isbn-is-valid-in-javascript/ 是验证 ISBN 号的示例代码。

    【讨论】:

    • 您好,感谢您的回答,在旧的 ISBN(即 10 位数字)中它工作正常,但在 13 位数字中它不起作用。我还需要解释 ((sum % 11) == 0);
    • 你能举个例子让我看看你在做什么吗?
    • 是的..我正在使用上面的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-15
    • 2013-08-04
    • 2022-01-23
    相关资源
    最近更新 更多