2

これは私のスクリプトです:

    <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 IDVJquery関数を配置するとMatricule Invalide、常に表示されるということです。これと同じ正規表現がJavaとASP.netで機能します。
私はここで非常に単純なものが欠けていると思いますか?

4

2 に答える 2

4

この質問で説明されているように、jQuery検証正規表現プラグインを使用していると仮定すると、先頭/末尾のスラッシュを削除し、正規表現内の他のスラッシュをエスケープする必要があります。

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

フィドルの例


または、周囲の引用符を削除して、正規表現オブジェクトに変換することもできます。

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

フィドルの例

于 2012-05-28T21:29:12.000 に答える
0

スラッシュを削除する必要があると思います

"^(\d{3})TN(\d{4})$"
于 2012-05-28T21:22:27.610 に答える