ASP.NET - 正则表达式验证器

时间:2011-01-04 20:59:40

标签: asp.net regex validation

我需要一个正则表达式,只能排除可被1.5整除的数字。我不知道这是否可能?

我检查了正则表达式库,但它们没有任何内容。有人有什么想法吗?

3 个答案:

答案 0 :(得分:3)

正如其他人所说,Regex不是正确的工具,最好使用如下的CustomValidator:

<asp:CustomValidator ID="DivisibleByOnePointFiveValidator" runat="server" ErrorMessage="Must be divisible by 1.5!"
    Display="Dynamic" ControlToValidate="MyTextBox" EnableClientScript="false" 
    OnServerValidate="DivisibleByOnePointFiveValidator_ServerValidate" >
</asp:CustomValidator>

    protected void DivisibleByOnePointFiveValidator_ServerValidate(object source, ServerValidateEventArgs args)
    {
        decimal inputValue;
        if (!decimal.TryParse(args.Value, out inputValue))
        {
            args.IsValid = false;
            return;
        }

        args.IsValid = inputValue % 1.5M == 0;
    }

答案 1 :(得分:2)

正则表达式用于字符串验证,而不是数字验证(除了说某些东西是否为数字)。你需要一个自定义验证器。

答案 2 :(得分:1)

使用正则表达式验证数值不是一个好主意。最好只为此目的编写一个小的验证器函数。

您可以使用此正则表达式非常轻松地验证数字/非数字:[0-9]+当然,这将允许许多前导零并且不考虑小数。你可以变得更复杂,例如[0-9]+(\.(0|[0-9]+))?我认为这会使十进制可选。我们甚至没有开始出现负面信号,科学符号和其他符号格式。如果指定允许的输入格式,我们可以使用正则表达式更轻松地提供帮助。