使用jquery验证,我已经使用.addMethod添加一个正则表达式。我也有一条规则,如果未选中复选框,则需要填写该元素以及遵守正则表达式。
noPreviousEmployers是该复选框的ID,如果选中该复选框,则不应显示任何验证消息;如果未选中,则它将显示所需的消息;如果输入中包含数据,则应运行正则表达式
$.validator.addMethod("regex", function (value, element, regexpr) {
return regexpr.test(value);
}, "");
rules:{
EndSalary1:{
required: '#noPreviousEmployers:unchecked',
regex: /^\$?[0-9]{1,3}(\,?\d{3})?(\,?\d{3})?(\.[0-9]{2})?$/
}
},
messages:{
EndSalary1:{
required: "Required Field",
regex: "Format As US Currency"
}
}
我什至尝试过
$.validator.addMethod("regex", function (value, element, regexpr) {
if(value.length != 0){
return regexpr.test(value);
}
}, "");
当我在选中复选框的情况下进行测试并且该字段中没有数据时,它将显示用于正则表达式验证的消息。在这种情况下,它不应显示任何内容。
答案 0 :(得分:0)
您不需要为任何新的regex
模式编写自定义规则。 the additional-methods.js
file中已经内置了一个称为pattern
的默认规则,该规则将一个正则表达式作为其参数。
rules:{
EndSalary1:{
required: '#noPreviousEmployers:unchecked',
pattern: /^\$?[0-9]{1,3}(\,?\d{3})?(\,?\d{3})?(\.[0-9]{2})?$/
}
}