我正在尝试在表单字段中验证邮政编码。我应用于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');
答案 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匹配,则应该使用{。}}。