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

Asp.net 使用正则表达式进行数字验证,asp.net,regex,Asp.net,Regex,在web应用程序中,当使用正则表达式验证文本框时,我编写的表达式只验证不以零开头的数字,小数点后有3位数字。但是如果我只输入一个数字,它就给了我一条信息。你能帮我学习正则表达式吗?我正在寻找一个表达式,它不接受前导数字零,只接受3位小数,如12.336、1.254、10.20等。这应该可以做到: [1-9]\d*\.?\d{0,3} 如果希望忽略空白,只需添加\s*: \s*[1-9]\d*\.?\d{0,3}\s* 顺便说一句,有很多用于编写正则表达式的可视化工具–我推荐Expresso。

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

这应该可以做到:

[1-9]\d*\.?\d{0,3}
如果希望忽略空白,只需添加\s*:

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

这就是您想要的:

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

注意:如果字符串两端都有空格,则此操作也会失败。如果不符合要求,请删除开头的
^
,以及结尾的
$

具体取决于所需内容:

^[1-9]\d*.?\d{0,3}$
这将匹配不以0开头且正好有3位小数的数字

^[1-9]\d*\.\d{3}$
这将匹配不以0开头、小数点为1到3或无的数字

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

@蒂姆-的确如此!我已经修改了我的答案,你是要精确到小数点后3位还是0到3位?在这个例子中,你说
10.20
2位小数。