C# 10的倍数的正则表达式

C# 10的倍数的正则表达式,c#,asp.net-mvc,regex,unobtrusive-validation,C#,Asp.net Mvc,Regex,Unobtrusive Validation,我不确定这是否可以通过Regex单独编辑来实现。我需要在MVC视图中验证整数字段值是否为10的倍数。这可以通过单独的正则表达式和非结构化的验证来实现吗?嗯。据我所知,10的倍数以0结尾。总是(至少是十进制的)那么呢 ^.*0$ 或者,如果要确保它们都是十进制的: ^\d*0$ 很简单,除非我遗漏了什么 根据评论,匹配负数: ^-?\d*0$ 要了解更通用(而且完全无用)的方法,请查看: 检查素数的一种很酷的方法,同样是无用的 ^[0-9]*0$ 当然,这将允许0。如果要确保输入大于或等于

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

嗯。据我所知,10的倍数以0结尾。总是(至少是十进制的)那么呢

^.*0$
或者,如果要确保它们都是十进制的:

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

根据评论,匹配负数:

^-?\d*0$
要了解更通用(而且完全无用)的方法,请查看:


检查素数的一种很酷的方法,同样是无用的

^[0-9]*0$
当然,这将允许
0
。如果要确保输入大于或等于10,可以使用以下方法:

^[1-9][0-9]*0$
但是,这不会处理以不同数字系统表示的数字(例如,我认为是10英寸的۱۰)。最好创建一个函数来测试输入的值。一个简单的实现看起来有点像这样:

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

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

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

[0-9]*0
这样的东西有什么问题?@DavidSchwartz有时会在你面前给出一个简单的答案:)为什么不使用该模块?5%10 != 0和50%10==0子十的任意倍数都会有模块0
asdasdas0
匹配,而regexThis不会匹配负数。@Blorgbeard,谢谢你的提示--我假设“整型字段”意味着所有输入都是整数。@rogaos实际上你可能是对的,不过,让正则表达式更清晰并没有什么坏处:)这似乎是一种复杂的操作方式。。同样,OP表示“整型字段”,您似乎允许使用小数