检查正则表达式中的最小金额

时间:2012-12-20 21:14:36

标签: regex

我有一个正则表达式,用于检查范围0到999999之间的值。

/^((?:\d{1,3},)?\d{1,3})(\.\d{2})$/

问题是0.00有效。我想将0.01设置为有效的最小量。因此,输入0.00将使我无效。

我对正则表达式的黑色艺术很可怕。有人可以帮忙吗?

感谢。

1 个答案:

答案 0 :(得分:5)

不要将逻辑放入正则表达式中。它们用于匹配模式,而不是进行数值比较。

在Perl中,这将是:

if ( $s =~ /^((?:\d{1,3},)?\d{1,3})(\.\d{2})$/ && ( $s > 0 ) ) {
    # acceptable number
}

如果你正确使用它们,正则表达不是黑色艺术。尝试使用它们进行数值计算并没有正确使用它们。