在Web应用程序中,在使用正则表达式验证文本框时,我编写了表达式,仅验证不以零开头的数字,小数点后面有3位数字。但是,如果我只键入一个数字,它会给我一个消息。你能帮我正则表达吗?我正在寻找一个不接受前导数字为零的表达式,只接受3位小数,如12.336,1.254,10.20等。
答案 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}$
请注意,如果字符串两端都有空格,则会失败,如果不符合要求,请在开头删除^
,最后删除$
。