javascript - 相同的正则表达式验证适用于服务器端,但不适用于客户端

标签 javascript asp.net regex validation

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

关于javascript - 相同的正则表达式验证适用于服务器端,但不适用于客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12621345/

相关文章:

java - 制造+非贪婪?

javascript - 将 html append 到 Bootstrap 模式不起作用

c# - 在应用程序配置文件中找不到名为 'BddContext' 的连接字符串

javascript - 匹配大量不同的句子(使用正则表达式模式解析)

带有文件类型和文本的表单上的 C# asp.net 问题

c# - 根据一列获取两个数据表之间的差异

php - 以特定字符串开头和结尾且中间没有(其他)字符串的正则表达式

javascript - 如何获取扬声器输出的媒体流以通过网络传输或录制?

javascript - Codemirror:抓取标题值到输入[type=text]

javascript - 如何获取具有特定类的多个元素 ID