2011-02-26 96 views
0

需要驗證數據輸入與屬性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

回答

1

您可以創建自定義屬性:

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