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

Dma*_*100 1 regex

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

/^((?:\d{1,3},)?\d{1,3})(\.\d{2})$/
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢.

And*_*ter 5

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

在Perl中,这将是:

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

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