正则表达式在javascript中跨越-9.99到0的范围

时间:2012-06-15 19:10:02

标签: javascript regex

我觉得我很接近我的正则表达式-9.99到0。

我有

/^[-][0-9]?(\.[0-9][0-9]?)?$/ // does not get the 0 :/

如果我添加| 0则允许20 30等...

2 个答案:

答案 0 :(得分:3)

您需要使用括号,使|0^正确使用$。此外,[-]与文字-相同,而\d[0-9]的简写:)

/^(-\d?(\.\d\d?)?|0)$/

如果您正在使用Javascript,虽然将字符串转换为数字更简单(也更快)并从那里开始(假设您也可以允许-3.21312这样的数字,否则您也可以删除多余的数字):

var str = "-8.57";
if(-10 < +str && +str <= 0){
    // Condition passed
}

答案 1 :(得分:1)

不确定你究竟是在追求什么,但是因为你处理数字,为什么不这样做(x是你的号码):

if(x <= 0 && x >= -9.99)
   console.log("OK");