这是我的剧本:
<script type="text/javascript">
$(document).ready(function () {
$.validator.addMethod(
"regex",
function (value, element, regexp) {
var re = new RegExp(regexp);
return this.optional(element) || re.test(value);
},
"Matricule Invalide"
);
$("form").validate({
rules: {
idv: { required: true, regex: "/^(\d{3})TN(\d{4})$/" },
dd: { required: true },
df: { required: true },
remise: { required: true, range: [0, 100] }
},
messages: {
idv: { required:"champs requis", regex: "Matricule Invalide"},
dd: "champs requis",
df: "champs requis",
remise : { required: "champs requis",
range: "Valeur doit entre entre 0 et 100"}
}
});
});
</script>
IDV字段必须像这样“111TN000”或“222TN0123”,在其他方面它是正则表达式:Number of 3 digets +TN+ Number of Four digets
。我已经创建了我的正则表达式"/^(\d{3})TN(\d{4})$/"
,但是这里的问题是,当我放置Valide IDV
我的Jquery函数时总是显示Matricule Invalide
,同样的Regulare表达式适用于Java和ASP.net。我觉得我在这里错过了一些非常简单的东西?
答案 0 :(得分:4)
假设您正在使用jQuery validate regex插件,如this question中所述,您需要删除前导/尾部斜杠并转义正则表达式中的其他斜杠:
idv: { required: true, regex: "^(\\d{3})TN(\\d{4})$" }
或者,您可以通过删除它周围的引号将其转换为正则表达式对象:
idv: { required: true, regex: /^(\d{3})TN(\d{4})$/ }
答案 1 :(得分:0)
我认为你必须删除斜杠
"^(\d{3})TN(\d{4})$"