正则表达式为字母数字和下划线c#

时间:2015-02-26 08:32:08

标签: regex asp.net-mvc-5 data-annotations

我正在使用ASP.NET MVC 5应用程序,其中我想为Name字段添加数据注释验证。

这应该只接受数字,字符和得分的任何组合。

我试过这个但没有工作:

RegularExpression("([a-zA-Z0-9_ .&'-]+)", ErrorMessage = "Invalid.")]

2 个答案:

答案 0 :(得分:4)

试试在regexr.com网站下编写的这个正则表达式。

标准 - 字母数字,下划线和空格。

http://regexr.com/3agii

([A-ZA-Z0-9_ \ S] +)

答案 1 :(得分:-1)

你对你试过的正则表达式有什么了解吗?

您正在使用character class,即方括号([a-zA-Z0-9_ .&'-])之间的东西。在该方括号内,您可以定义该类应匹配的所有字符。所以,现在很容易:你允许你不想匹配的字符。

根据您的“尝试”,您可以将其更改为

[a-zA-Z0-9_]

似乎是你想要匹配的角色。但这真的是你需要的吗?这真的是该领域唯一可能的角色吗?

如果是,那么你就完成了。

如果不是,您可能想要添加所有语言的所有字符。幸运的是,有一个Unicode property

\p{L}所有字母字符

还有另一个可能对您有用的预定义组:

\w匹配任何单词字符(定义也可以在第一个链接中找到,包括Unicode类别Ll,Lu,Lt,Lo,Lm,Nd,Pc,基本上是[a-zA- Z0-9_]但Unicode样式包含所有字母和更多连接字符)

但是,如果你想匹配真实姓名,这将不会涵盖所有可能的名字。我对此主题有另一个答案here