我有一个正则表达式,检查范围0到999999之间的值.
/^((?:\d{1,3},)?\d{1,3})(\.\d{2})$/
Run Code Online (Sandbox Code Playgroud)
问题是0.00是有效的.我想将0.01设置为有效的最小量.因此,输入0.00将无效.
我对正则表达式的黑色艺术很可怕.有人可以帮忙吗?
谢谢.
不要将逻辑放入正则表达式中.它们用于匹配模式,而不是进行数值比较.
在Perl中,这将是:
if ( $s =~ /^((?:\d{1,3},)?\d{1,3})(\.\d{2})$/ && ( $s > 0 ) ) {
# acceptable number
}
Run Code Online (Sandbox Code Playgroud)
如果你正确使用它们,正则表达不是黑色艺术.尝试使用它们进行数值计算并未正确使用它们.
归档时间: |
|
查看次数: |
98 次 |
最近记录: |