使用正则表达式进行数字验证

时间:2011-09-19 10:33:06

标签: asp.net regex

在Web应用程序中,在使用正则表达式验证文本框时,我编写了表达式,仅验证不以零开头的数字,小数点后面有3位数字。但是,如果我只键入一个数字,它会给我一个消息。你能帮我正则表达吗?我正在寻找一个不接受前导数字为零的表达式,只接受3位小数,如12.336,1.254,10.20等。

3 个答案:

答案 0 :(得分:1)

这应该可以解决问题:

[1-9]\d*\.?\d{0,3}

如果您想忽略空格,只需添加\ s *:

\s*[1-9]\d*\.?\d{0,3}\s*
BTW,有很多用于编写正则表达式的可视化工具 - 我推荐Expresso。

答案 1 :(得分:1)

具体取决于您想要的内容:

这将匹配不是从0开始且具有正好3个小数

的数字
^[1-9]\d*\.\d{3}$

这将匹配不是从0开始并且具有1到3的十进制或没有的数字。

^[1-9]\d*(?:\.\d{1,3})?$

答案 2 :(得分:0)

这就是你想要的:

^[1-9]\d*.?\d{0,3}$

请注意,如果字符串两端都有空格,则会失败,如果不符合要求,请在开头删除^,最后删除$