验证的正则表达式的

问题描述:

需要验证数据输入与属性RegularExpression,而在财产去几个正则表达式,例如:验证的正则表达式的

 [RegularExpression (@ "[a-z] {4,} ", ErrorMessage ="Short Name")] 
    [RegularExpression (@ "[a-z]", ErrorMessage = "invalid character ")] 
    public string Name {set; get;} 

使用两个属性正则表达式编译器的问题 “复制‘正则表达式’的属性”。

如何实施验证?

+1

作为一个评论,我宁愿如果你没有限制的字符集的用户可以使用,更不用说这样一本小英文为中心的一系列的字母。您会考虑从您的应用程序中删除该限制以避免激怒您的用户吗? – Timwi 2011-02-26 17:25:29

您可以创建自定义属性:

public class ShortNameAttribute : RegularExpressionAttribute 
{ 
    public ShortNameAttribute() : base(@"[a-z] {4,} ") 
    { 
    } 
} 
public class InvalidCharsAttribute : RegularExpressionAttribute 
{ 
    public InvalidCharsAttribute() : base(@"[a-z]") 
    { 
    } 
} 


[ShortNameAttribute] 
[InvalidCharsAttribute] 
public string Name { get; set; } 
+0

嗯......如果这样的话,为什么'AllowExpressedAttribute'声明为'AllowMultiple = false'? – Timwi 2011-02-26 17:28:10

+0

@Timwi很好地设置它然后。 – ukhardy 2011-02-26 17:31:08

+0

[我不认为他可以篡改太多](http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.regularexpressionattribute.aspx):P – bottlenecked 2011-02-26 17:58:49