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

正则表达式在javascript中的范围为-9.99到0,javascript,regex,Javascript,Regex,我觉得我非常接近我的正则表达式-9.99到0 我有 /^[-][0-9]?(\.[0-9][0-9]?)?$/ // does not get the 0 :/ 如果我添加| 0,则它允许20 30等。您需要括号,以使您的|0能够正确使用^和$。另外,[-]与文字-相同,\d是[0-9]的缩写:) 如果您使用的是Javascript,那么将字符串转换为数字并从中开始(假设您也可以允许像-3.21312这样的数字,否则您还可以去掉多余的数字),这会更简单(更快): var str=“-8.57”

我觉得我非常接近我的正则表达式-9.99到0

我有

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

如果我添加| 0,则它允许20 30等。

您需要括号,以使您的
|0
能够正确使用
^
$
。另外,
[-]
与文字
-
相同,
\d
[0-9]
的缩写:)

如果您使用的是Javascript,那么将字符串转换为数字并从中开始(假设您也可以允许像
-3.21312
这样的数字,否则您还可以去掉多余的数字),这会更简单(更快):

var str=“-8.57”;

如果(-10<+str&&+str您需要括号来使您的
|0
正确使用
^
$
。而且
[-]
与文本
-
相同,
\d
[0-9]
的简写形式。)

如果您使用的是Javascript,那么将字符串转换为数字并从中开始(假设您也可以允许像
-3.21312
这样的数字,否则您还可以去掉多余的数字),这会更简单(更快):

var str=“-8.57”;

如果(-10<+str&&+str不确定你到底在追求什么,但既然你在处理数字,为什么不这样做(其中
x
是你的数字):

if(x=-9.99)
控制台日志(“OK”);

不确定你到底在追求什么,但既然你在处理数字,为什么不这样做(其中
x
是你的数字):

if(x=-9.99)
控制台日志(“OK”);

您使用的是什么编程语言?我有一个输入,用户必须在这两个数字之间添加值。
-
-.0
-0
有效数字吗?它可能有助于将其分解为子案例,而不是试图在一个案例中完成所有操作-您想要一个匹配“0”的正则表达式(0.0、.0、0.00是否也有效?)或者是一个紧跟着D.DD的减号,其中D是任何数字(但同样,是普通的D,D.,.D.D,D.D也是有效的形式?).我相信这是可以做到的,但它不会很漂亮…小数点后两位以上吗?你使用的是什么编程语言?我有一个输入,用户必须在这两个数字之间添加值。
-
-.0
-0
是有效的数字吗?它可能有助于将其分解为子案例,而不是尝试使用do一应俱全-您需要一个匹配“0”的正则表达式(是否0.0、.0、0.00也有效?)或一个负号,后跟D.DD,其中D是任意数字(但同样,是普通的D、D、.D.D、D.D也是有效形式?).我肯定可以做到,但不会很漂亮…小数点后两位以上吗?谢谢你编辑我的答案,我忘了这个
-
,还有+1,请你给我一个更好的答案,包括解释。但愿我早知道..我一直在努力学习正则表达式,现在就快做完了。谢谢!@mattyd没问题!:)一般来说,如果你认为某个东西是一个数字,最好使用
+
将它转换成一个数字,这是
数字(“-8.57”)
parseInt(“-8.57”,10)
parseFloat(“-8.57”)
。然后把它作为一个数字来做你的工作。Regex擅长字符串,但当您想将字符串视为另一种类型时,它就不是很好了。感谢您编辑我的答案,我忘记了这个
-
,为您提供了一个更好的答案,包括解释。希望我早知道。。我一直在努力学习正则表达式,现在差不多完成了。谢谢@马蒂德:没问题一般来说,如果你认为某个东西是一个数字,最好使用
+
将它转换成一个数字,这是
数字(“-8.57”)
parseInt(“-8.57”,10)
parseFloat(“-8.57”)
。然后把它作为一个数字来做你的工作。正则表达式擅长于字符串,但当您想将字符串看作另一种类型时,它就不是很好了。
/^(-\d?(\.\d\d?)?|0)$/
var str = "-8.57";
if(-10 < +str && +str <= 0){
    // Condition passed
}
if(x <= 0 && x >= -9.99)
   console.log("OK");