非负数的正则表达式和##。##的格式

时间:2011-05-02 10:02:45

标签: regex

我要求非负数应该大于0(零),允许任何正数,并允许这个##。##格式。我试过

^\d+(\.\d{1,2})?$

这应该允许以下格式..

00.10
0.1
00.1
122222

应该禁止

0,
00.00,
000000,
10.1111

它支持我的所有要求,但它也允许全部为零。因此,应禁止仅输入零的数字,包括文本框中的单个零。

先谢谢

3 个答案:

答案 0 :(得分:1)

尝试使用:

<击> ^ [1-9] \ d?(?:?\ d \ d)?$

更新

你的例子有点清楚。

在Perl中,我会使用正则表达式进行第一次测试 如果匹配,则将该值与0

进行比较
if ($value =~ /^\d+(,:\.\d\d?)?$/ && $value != 0) {
    print "OK\n";
} else {
    print "Wrong value\n";
}

答案 1 :(得分:0)

尝试将\d+替换为[1-9]\d*。它在我的vi中工作。

答案 2 :(得分:0)

这适用于VI编辑器中的示例:

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

如果您没有尝试VI,那么您可能必须删除转义字符(\