2014-01-14 75 views
1

我想验证表单字段中的邮政编码。我应用于zipcode对象的这种方法将在用户输入太多或太少时正确验证表单,但如果它们什么都不做,则表单中的占位符文本“12345”允许用户通过验证成功。所以我试图在这里添加这样的代码,例如“or ==”12345“然后返回false”。任何想法如何?jQuery验证邮政编码的方法

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

我觉得你只是想:

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')); 

我也有test更换match ,如果你只是想知道一个字符串是否与RegExp匹配,你应该使用它。

+0

是的谢谢你,这是正确的答案。 – nick