2011-05-11 54 views
0

我經常使用的驗證框架的東西,如:驗證字符串長度:X或Y,而不是X和Y之間?

[StringLength(10, MinimumLength=5)] 
public string MyString{ get; set; } 

這使我指定的MyString長度必須在5至10個字符之間。

現在我必須檢查字符串是5長還是10長。沒有其他長度是允許的。 我很肯定StringLength屬性是不夠的,所以如何做到這一點?我是否需要擴展驗證框架?

THX

+1

你可以使用正則表達式。 ?那麼表達式就是'。{5}(。{5})?' – 2011-05-11 14:27:20

+0

好主意...... :)我的字符串只有數字,所以我會使用'^ \ d {5}(\ d {5}) ?$'。 – 2011-05-11 14:37:32

+0

@Lasse V. Karlsen:回答而不是評論這個問題。我會將它標記爲答案。 – 2011-05-11 15:22:12

回答

1

如果你能(我不熟悉的問題驗證庫),您可以使用正則表達式。

正則表達式來驗證任何字符,長度爲5或10,將是:

^.{5}(.{5})?$ 

如果你只有數字,你可以使用:

^\d{5}(\d{5})?$ 
0

使用流利的驗證API我只用:

RuleFor(x => x.Property).Length(10); 
+0

http://fluentvalidation.codeplex.com/比內置東西 – iwayneo 2011-05-11 14:40:07

+0

所提供的剛性和不靈活的方法好得多,但它不使用System.DataAnnotations。*工具,不是嗎?你的建議意味着我必須改變我目前的驗證方法。我對嗎 ? – 2011-05-11 14:42:35

+0

是的。如果你可以 - 我衷心建議你這樣做。它更具表現力。 – iwayneo 2011-05-11 14:51:59

相關問題