正则表达式为10的倍数

时间:2013-08-27 22:10:34

标签: c# asp.net-mvc regex unobtrusive-validation

我不确定这是否可以通过Regex 单独编辑来实现。我需要在我的MVC视图中验证整数字段值为10的倍数。这是通过单独的正则表达式和不引人注意的验证来实现的吗?

3 个答案:

答案 0 :(得分:8)

这样的模式应该有效:

^[0-9]*0$

当然这将允许0。如果您想确保输入大于或等于10,可以使用:

^[1-9][0-9]*0$

然而,这不会处理在不同数字系统中表达的数字(例如10,我相信在Eastern Arabic numerals中为10)。最好创建一个custom validation attribute来测试输入的值。一个简单的实现看起来有点像这样:

public class MultipleOf10Attribute : ValidationAttribute
{
    public override bool IsValid(object value)
    {
        return ((int)value) % 10 == 0;
    }
}

答案 1 :(得分:3)

嗯。据我所知,10的倍数以0结尾。总是如此。 (至少在十进制中。)那么怎么样

^.*0$

或者如果你想确保它们都是小数:

^\d*0$
简单,除非我遗漏了什么。

根据评论,匹配负数:

^-?\d*0$

对于更通用(且完全无用)的方法,请查看:Check number divisibility with regular expressions

这是检查素数的一种很酷的方式,再次无用here

答案 2 :(得分:0)

是的,你可以这样做,这是10的倍数的正则表达式

^\d*\d?((10)|(0))\.?((0)|(00))?$