C# 用于阻止特殊字符的MVC 5模型验证正则表达式

C# 用于阻止特殊字符的MVC 5模型验证正则表达式,c#,regex,asp.net-mvc,C#,Regex,Asp.net Mvc,我试图阻止除空格外的特殊字符,——@。下面的正则表达式使用MVC,但它不起作用: [RegularExpression("[-_,A-Za-z0-9]$", ErrorMessageResourceType = typeof(Strings), ErrorMessageResourceName = "NoQuote")] public string custCode { get; set; } 提供给RegularExpressionAttribute验证属性的正则表达式指定,当且仅当表达式匹

我试图阻止除空格外的特殊字符,——@。下面的正则表达式使用MVC,但它不起作用:

[RegularExpression("[-_,A-Za-z0-9]$", ErrorMessageResourceType = typeof(Strings), ErrorMessageResourceName = "NoQuote")]
public string custCode { get; set; }
提供给RegularExpressionAttribute验证属性的正则表达式指定,当且仅当表达式匹配时,该值才有效。但您提供的表达式将在最后一个字符有效时匹配,而不管其余字符如何

因此,您需要在两侧锚定它,以确保从头到尾检查整个值,然后确保您的字符串只包含零个或多个一个或多个?使用复制运算符(如*)来复制这些有效字符-根据您的要求进行必要的调整。例如:

"^[-_,A-Za-z0-9]*$
此外,您还提到您希望包含空格、、和@,因此您也应该将它们添加到character类中:

"^[-_, @.A-Za-z0-9]*$"
提供给RegularExpressionAttribute验证属性的正则表达式指定,当且仅当表达式匹配时,该值才有效。但您提供的表达式将在最后一个字符有效时匹配,而不管其余字符如何

因此,您需要在两侧锚定它,以确保从头到尾检查整个值,然后确保您的字符串只包含零个或多个一个或多个?使用复制运算符(如*)来复制这些有效字符-根据您的要求进行必要的调整。例如:

"^[-_,A-Za-z0-9]*$
此外,您还提到您希望包含空格、、和@,因此您也应该将它们添加到character类中:

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