我正在使用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]*/;