我不确定这是否可以通过 Regex Edit Alone来实现。我需要在我的 MVC 视图中验证 10 的倍数的整数字段值。这是否可以通过单独的正则表达式和不显眼的验证来实现?
问问题
3670 次
3 回答
8
像这样的模式应该有效:
^[0-9]*0$
当然这将允许0
. 如果你想确保输入大于或等于 10,你可以使用这个:
^[1-9][0-9]*0$
但是,这不会处理以不同数字系统表示的数字(例如 10,我相信在东方阿拉伯数字中是 10 )。最好创建一个自定义验证属性来测试输入的值。一个简单的实现看起来有点像这样:
public class MultipleOf10Attribute : ValidationAttribute
{
public override bool IsValid(object value)
{
return ((int)value) % 10 == 0;
}
}
于 2013-08-27T22:12:55.980 回答
3
唔。我的理解是 10 的倍数以 0 结尾。总是。(至少十进制。)那么怎么样
^.*0$
或者如果你想确保它们都是十进制的:
^\d*0$
很简单,除非我遗漏了什么。
根据评论,匹配负数:
^-?\d*0$
对于更通用(并且完全无用)的方法,请查看:Check number divisibility with regular expressions
还有一个很酷的检查素数的方法,在这里又没用
于 2013-08-27T22:12:26.020 回答
0
是的,你可以这样做,这是 10 倍数的正则表达式
^\d*\d?((10)|(0))\.?((0)|(00))?$
于 2013-08-27T22:15:21.350 回答