通过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);
}
}, ""); 当我在复选框被选中并且字段中没有数据的情况下进行测试时,它将显示用于正则表达式验证的消息。在这种情况下,它不应该显示任何内容。
发布于 2019-04-30 10:01:14
您不需要为任何新的regex模式编写自定义规则。the additional-methods.js file中已经内置了一个名为pattern的默认规则,它接受正则表达式作为其参数。
rules:{
EndSalary1:{
required: '#noPreviousEmployers:unchecked',
pattern: /^\$?[0-9]{1,3}(\,?\d{3})?(\,?\d{3})?(\.[0-9]{2})?$/
}
}https://stackoverflow.com/questions/55910298
复制相似问题