表单验证Jquery正则表达式

时间:2012-05-28 21:18:02

标签: jquery validation

这是我的剧本:

    <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。我觉得我在这里错过了一些非常简单的东西?

2 个答案:

答案 0 :(得分:4)

假设您正在使用jQuery validate regex插件,如this question中所述,您需要删除前导/尾部斜杠并转义正则表达式中的其他斜杠:

idv: { required: true, regex: "^(\\d{3})TN(\\d{4})$" }

Example fiddle


或者,您可以通过删除它周围的引号将其转换为正则表达式对象:

idv: { required: true, regex: /^(\d{3})TN(\d{4})$/ }

Example fiddle

答案 1 :(得分:0)

我认为你必须删除斜杠

"^(\d{3})TN(\d{4})$"