2011-05-11 86 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

相关问题