我正在使用ASP.Net MVC来验证字符串以任何形式包含的数字都不会超过2。

我正在使用以下服务器端代码:

[RegularExpression(@"[^\d]*\d?[^\d]*\d?[^\d]*",ErrorMessage = "More than 2 Numbers are not allowed")]


效果很好,但是以下JavaScript代码将始终返回0

>> var mystring = "test123";
>> var myregax = new RegExp("[^\d]*\d?[^\d]*\d?[^\d]*");
>> mystring.search(myregax);
0
>> mystring = "test";
"test"
>> mystring.search(myregax);
0


我缺少什么,ASP.Net和JavaScript的正则表达式语法之间有什么区别?

最佳答案

使用RegExp对象,您必须在模式中转义\

new RegExp("[^\\d]*\\d?[^\\d]*\\d?[^\\d]*");


或者,使用此语法

var myregax = /[^\d]*\d?[^\d]*\d?[^\d]*/;

07-24 17:15