2017-01-12 40 views
1

在我的模型我有以下几点:正则表达式注释失败虽然是正确

[Required(ErrorMessage = "First name is required.")] 
[Display(Name = "First Name")] 
[MaxLength(50)] 
[RegularExpression(@"/^[A-z]+$/", ErrorMessage = "Only alphabet characters are allowed.")] 
public string FirstName { get; set; } 

在形式它的失败检查不管我摆在那里。我希望它确保只有字母,数字或特殊字符。

这不是重复的,因为引用的帖子与数据注释无关。他们是两种不同的背景。

+0

的可能的复制[正则表达式匹配只有字母(http://stackoverflow.com/questions/3617797/regex-to-match-only-letters) –

+0

虽然解决方案是同样的问题不同。 –

回答

2

您需要删除正则表达式分隔符(不在.NET正则表达式中使用,因此将其视为文字斜杠),并用A-Za-z(请参阅Why is this regex allowing a caret?)替换A-z

使用

@"^[A-Za-z]+$" 
+0

[正则表达式只匹配字母字符](http://stackoverflow.com/questions/6067592/regular-expression-to-match-only-alphabetic-characters) –

+0

@SergeyBerezovskiy:接受的答案[there](http: //stackoverflow.com/questions/6067592/regular-expression-to-match-only-alphabetic-characters)是错误的。另外,'/.../'是一种常见的正则表达式,在.NET中,'/'被解析为模式中的文字符号。 –

+0

嗯..需要检查 –