Javascript 正则表达式接受小于-50.0或大于80.0的数字

Javascript 正则表达式接受小于-50.0或大于80.0的数字,javascript,regex,Javascript,Regex,我试图找到一个JavaScript正则表达式来接受小于-50.0或大于80.0的数字 下面的表达式不起作用: /^([-][5][0]\.[0]|[-][0-4][0-9]\.[0-9]|[-][0-9]\.[0-9])|([0]\.[0]|[1-9]\.[0-9]|[0-7][0-9]\.[0-9]|[8][0]\.[0])$/ 正则表达式用于模式匹配,而不是类似的东西。只需将输入解析为数字并比较其值 function checkValue(input){ var number =

我试图找到一个JavaScript正则表达式来接受小于-50.0或大于80.0的数字

下面的表达式不起作用:

 /^([-][5][0]\.[0]|[-][0-4][0-9]\.[0-9]|[-][0-9]\.[0-9])|([0]\.[0]|[1-9]\.[0-9]|[0-7][0-9]\.[0-9]|[8][0]\.[0])$/

正则表达式用于模式匹配,而不是类似的东西。只需将输入解析为数字并比较其值

function checkValue(input){
    var number = parseInt(input);
    if (number === NaN) throw new Error('input was not a number') /* error checking */
    if (number < -50 || number > 80) return true;
   return false;
}
函数校验值(输入){
变量编号=parseInt(输入);
如果(number==NaN)抛出新错误('输入不是数字')/*错误检查*/
如果(数字<-50 | |数字>80)返回true;
返回false;
}

编辑:如果可以,您应该尝试在上游进行某种形式的验证。正则表达式不适合这种情况。请随意发布更多的上下文代码,我们可以在这里看到如何进行最佳验证。

您可以使用以下正则表达式:

/(?:^|[^.])(-([56]\d|\d{3,})(?:\.\d{1,2})?\b|\b([89]\d|\d{3,})(?:\.\d{1,2})?\b)/gm

这是knockoutJS验证的一部分-params参数需要Regex为其制作一个实时工作演示,请查看+1Hi,你能帮我解决这个问题吗