jquery验证插件中的一条验证规则是否会抑制另一条验证规则?
我有以下代码jquery验证插件中的一条验证规则是否会抑制另一条验证规则?,jquery,regex,jquery-validate,Jquery,Regex,Jquery Validate,我有以下代码 <html> <head> <title>Untitled Document</title> <script type="text/javascript" src="js/jquery-1-4-2.js"></script> <script type="text/javascript" src="js/jquery_validate.js"></script> <script ty
<html>
<head>
<title>Untitled Document</title>
<script type="text/javascript" src="js/jquery-1-4-2.js"></script>
<script type="text/javascript" src="js/jquery_validate.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#form1").validate({
rules: {
fld1: {
methodtwo: true,
methodone: true
}
},
messages: {
fld1: {
methodtwo: "<br> 2Wrong Project Name.",
methodone: "<br> 1Wrong Project Name."
}
}
});
});
$.validator.addMethod('methodone', function (value) {
return /^[a-zA-Z0-9]+$/.test(value);
}, 'wrong1.');
$.validator.addMethod('methodtwo', function (value) {
return /^[a-zA-Z^0-9]+$/.test(value);
}, 'wrong2.');
</script>
</head>
<body>
<form id="form1"name="form1" action="" method="get">
<table width="80%" border="0">
<tr>
<td><input type="text" name="fld1" id="idfld1"></td>
</tr>
<tr>
<td><input type="submit" name="submit" id="idsubmit"></td>
</tr>
</table>
</form>
</body>
</html>
无标题文件
$(文档).ready(函数(){
$(“#表格1”)。验证({
规则:{
fld1:{
方法二:对,
方法一:对
}
},
信息:{
fld1:{
方法二:“
2错误的项目名称。”,
方法一:“
1错误的项目名称。”
}
}
});
});
$.validator.addMethod('methodone',函数(值){
返回/^[a-zA-Z0-9]+$/.测试(值);
}“错误1”);
$.validator.addMethod('methodtwo',函数(值){
返回/^[a-zA-Z^0-9]+$/.test(值);
}“错误2”);
执行上述代码后,我希望如果我们输入
谢谢大家! 当它是字符类中的第一个字符时,
^
仅表示“不是”。在任何其他位置,它表示文字^
所以你可能想要
/^\D+$/
方法2。(\D
表示“除数字以外的任何字符”,其中已包括a-zA-Z
)
然而,我不确定你到底想做什么。您可以将所有这些规则组合成一个正则表达式(但目前它们确实相互矛盾,因此有点令人费解)。正如Tim正确指出的那样,
^
插入符号是字符类中的第一个字符时,它只是一个元字符
在编写正则表达式时,有一件事很有帮助,那就是用英语(或你选择的母语)写出正则表达式所匹配的内容。让我们用两个正则表达式来实现这一点:
第一个正则表达式:/^[a-zA-Z0-9]+$/
表示:“在字符串的开头匹配一个或多个字母或数字字符,然后匹配字符串的结尾。”
第二个正则表达式:/^[a-zA-Z^0-9]+$/
表示:“在字符串的开头匹配一个或多个可以是字母、插入符号或数字的字符,然后匹配字符串的结尾。”
当你像这样把它拼出来时,你的错误马上就显现出来了。对于第二个正则表达式,只需从允许字符的字符类中删除数值表达式,如下所示:
新正则表达式:/^[a-zA-Z]+$/
表示:“在字符串的开头匹配一个或多个字母字符,然后匹配字符串的结尾。”