正则表达式为10的倍数

Flo*_*ind 0 c# regex asp.net-mvc unobtrusive-validation

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

p.s*_*w.g 8

像这样的模式应该工作:

^[0-9]*0$
Run Code Online (Sandbox Code Playgroud)

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

^[1-9][0-9]*0$
Run Code Online (Sandbox Code Playgroud)

但是,这不会处理在不同数字系统中表示的数字(例如10,我相信在东方阿拉伯数字中为10 ).最好创建一个自定义验证属性来测试输入的值.一个简单的实现看起来有点像这样:

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

  • +1用于推荐可读和可维护的替代方案. (2认同)