.NET正则表达式不适用于客户端

时间:2012-01-17 21:38:25

标签: javascript .net regex

我在.NET中使用以下正则表达式来验证字符串是否包含12个数字字符并且它完美地运行。 (EG:000000174064)

public static string TwelveDigitNumber = @"^\d{12}$";

然而,使用javascript,相同的正则表达式不适用于客户端。

编辑:我正在使用jquery验证,并为常规表达添加了以下函数

// regex validation
$.validator.addMethod(
        "regex",
        function (value, element, regexp) {
            var re = new RegExp(regexp);
            return this.optional(element) || re.test(value);
        },
        "Please check your input."
);


 rules: {
                    "Number": {
                        maxlength: 12, regex: "^\d{12}$"
                    },

2 个答案:

答案 0 :(得分:1)

你输入了这样的正则表达式:

var rgx = /^\d{12}$/;

// or

var rgx = new RegExp('^\\d{12}$');

// or without the new keyword?

答案 1 :(得分:1)

由于转义反斜杠,new RegExp( "^\d{12}$" )的结果为/^d{12}$/而不是/^\d{12}$/。它适用于.NET,因为你有@我认为跳过转义。

无论如何,对于静态正则表达式,你可以使用正则表达式文字:

regex: /^\d{12}$/

相同

regex: new RegExp( "^\\d{12}$" )

然后,您可以将其直接传递给函数,并且不必每次都实例化它。