我有一个当前要求,我需要确保用户没有在使用 MVC4 的文本框中输入句点(“.”)。
所以,这应该是允许的:30
但这应该是不允许的:30.2
我正在尝试使用 RegularExpression 属性,但找不到有效的组合:
public class StudyRandomizationCap
{
[Range(1, 100, ErrorMessage = "Milestone must be between 1 and 100.")]
[RegularExpression(@"\.", ErrorMessage = "Milestone percentage values cannot contain decimals.")]
public short? MilestonePercentage1 { get; set; }
}
无论我输入的任何数字是否有小数,这都会在客户端验证失败。
将其更改为:
[RegularExpression(@"[^.]", ErrorMessage = "里程碑百分比值不能包含小数。")]
将允许 1-9 之间的单个数字,但数字为 10 及以上的分钟将失败。同样,这一切都在客户端。
为什么它在 1-100 之间的数字上失败,具体取决于我使用的正则表达式?有比使用正则表达式更好/更简单的方法吗?Javascript 如何执行与 ModelBinder 不同的正则表达式是否存在某种类型的限制?
这似乎是一个相当简单和微不足道的检查,对我来说,正则表达式检查应该只有在有“。”时才会失败。在文本框中。