float数据类型的必需和正则表达式

时间:2009-11-16 11:43:15

标签: .net regex

我想验证数据库中数据类型为float的字段。请告诉我float数据类型所需的表达式和正则表达式,以便用户只能输入float中的数字。

例如这是错误

else if(!Regex.IsMatch(lowerlimit, 
        @"[+-]?(?:(?:\d+\.\d*)|(?:\d*\.\d+))"))
{
    ModelState.AddModelError("lowerlimit", "Please enter valid lower limit");
}

由于 里兹

3 个答案:

答案 0 :(得分:1)

[+\-]?(?:(?:\d+(\.\d*)?)|(?:\d*\.\d+))

如果您想让它更具可读性,可以删除非捕获?:标记。

[+\-]?((\d+(\.\d+)?)|(\d*\.\d+))

注意:此正则表达式只匹配带小数点的浮点数 - 而不是整数。

答案 1 :(得分:0)

尝试这样的事情:

  

^\d*\.?\d*$

答案 2 :(得分:0)

第1页:看起来你陷入了常见的陷阱:你有一个问题,你决定用正则表达式来解决它,现在你有两个问题。
您应该看看是否可以使用标准库来尝试将预期浮点解析为浮点数,以避免使用近似正则表达式。

取决于您想要允许的浮点数文本表示的样式。

科学记数法:

[-+]?\d(\.\d+)?([eE]-?\d+)?

简单的小数点:

-?\d+(\.\d+)?

允许空整数部分:

[-+]?((\d*\.\d+)|(\d+(\.\d+)?))