.NET正则表达式在客户端不起作用

.NET regex not working client side

本文关键字:不起作用 客户端 正则表达式 NET      更新时间:2023-09-26

我在.NET中使用以下正则表达式来验证字符串是否包含12个数字字符,并且它是否完美工作。(例如: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}$"
                    },

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

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

regex: /^'d{12}$/

与相同

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

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

你有没有像这样键入Regex:

var rgx = /^'d{12}$/;
// or
var rgx = new RegExp('^''d{12}$');
// or without the new keyword?