RegEx接受小于-50.0或大于80.0的数字

时间:2015-03-25 17:53:03

标签: 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])$/

2 个答案:

答案 0 :(得分:3)

RegEx用于模式匹配,而不是像这样的东西。只需将输入解析为数字并比较其值。

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;
}

编辑:如果可以的话,你应该尝试在上游进行某种形式的验证。 RegEx不适合这个。随意发布更多的上下文代码,我们可以看到如何在这里进行最佳验证。

答案 1 :(得分:1)

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

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

RegEx Demo