我正在尝试找到一个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])$/
答案 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