邮政编码的jQuery验证方法

时间:2014-01-14 23:34:29

标签: jquery forms jquery-validate

我正在尝试在表单字段中验证邮政编码。我应用于zipcode对象的这个方法将在用户输入太多或太少时正确验证表单,但如果他们什么都不做,那么占位符文本," 12345",在表单中允许用户成功通过验证。所以我想在这里添加类似"或==" 12345"然后返回false"。有关如何的任何想法?

jQuery.validator.addMethod('zipcode', function(value, element) {

      return this.optional(element) || !!value.trim().match(/^\d{5}(?:[-\s]\d{4})?$/) || !!value == "12345";

    }, 'Invalid zip code');

1 个答案:

答案 0 :(得分:1)

我想你只是想:

return this.optional(element) || 
    (/^\d{5}(?:[-\s]\d{4})?$/.test(value.trim()) && value !== "12345");
如果你实际上使用placeholder属性,那么

或更强大一些:

return this.optional(element) || 
    (/^\d{5}(?:[-\s]\d{4})?$/.test(value.trim()) && 
           value !== $(element).attr('placeholder'));

我还将match替换为test,如果您只是想知道字符串是否与RegExp匹配,则应该使用{。}}。