2012-10-23 134 views
2

我已经尝试使用下面的正则表达式注释,但没有奏效:允许数从1到100 EditorFor

[RegularExpression(@"([0-9]|[0-9]\d|100)$"] 

this的回答表明,这是一个不错的办法)

我也试图与maskedInput 1.2.2(jQuery的),但它不会接受任何一个数字值

jQuery(function ($) { 
    $("#MyControl").mask("99"); //also tried "9?9" 
}); 

有没有可能有一个面具接受值从1到只有100?

+0

你说的是数据验证还是你说的是输入输入限制不允许人们在输入字段中输入“abc”?因为这两个是不同的不管怎样,服务器端的数据注释都不会帮助你。 –

+0

@RobertKoritnik验证越快,对我来说越好。因此,如果可以阻止用户输入1到100之间的任何数字,那很好! – Mathieu

回答

1

简短的回答是“不”,因为是整数的无限表示1-100(1,01,001,0001,等等,都是数字的所有有效表示1.

你可以限制这样的数据输入到规范化表示(1-9,11-99,100):

(100|([1-9][0-9])|[1-9] 

这应该做的伎俩

+0

在答案中,这将首先验证。该表格不需要用户查看他的输入是错误的 – Mathieu

8

看看RangeAttribute

+0

@@AndréPena:RangeAttribute不会生成验证,因为我对此感到担忧。 –

+3

@AndréPena:你错了。 'RangeAttribute'确实设置了正在验证的实体属性约束。可能是因为你使用了错误的数据类型......类似于Mathieu可能做到的。他可能会对一个'int'属性进行正则表达式,当然这并不是诀窍。 –