MVC 5模型验证正则表达式阻止特殊字符

本文关键字:特殊字符 正则表达式 验证 模型 MVC | 更新日期: 2023-09-27 18:08:59

我试图阻止特殊字符,除了(空格,_,-,@,.)使用下面的正则表达式使用MVC,但它不工作:

[RegularExpression("[-_,A-Za-z0-9]$", ErrorMessageResourceType = typeof(Strings), ErrorMessageResourceName = "NoQuote")]
public string custCode { get; set; }

MVC 5模型验证正则表达式阻止特殊字符

提供给RegularExpressionAttribute验证属性的regex指定当且仅当表达式匹配时该值有效。但是,您提供的表达式将在最后一个字符有效时匹配,而不考虑其余字符。

因此,您需要将其锚定在两侧,以确保从头到尾检查整个值,然后使用复制操作符(如*)确保您的字符串仅由零个或多个(一个或多个?)这些有效字符组成-根据您的需求根据需要进行调整。例如:
"^[-_,A-Za-z0-9]*$

另外,您提到您想要包括空格、.@,所以您也应该将它们添加到字符类中:

"^[-_, @.A-Za-z0-9]*$"