我在.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}$"
},
答案 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}$" )
然后,您可以将其直接传递给函数,并且不必每次都实例化它。