我需要允许负数进入这个函数



此函数执行以下操作

  • 不允许字符
  • 允许退格
  • 有高限值
  • 有低限值
  • 的最小步长为0.1即不小于0.1即不小于0.01

不工作的是允许负数进入函数

<html>
<input id="setPoint" type="text" name="setPoint" onkeydown="myFunction(event,-80, 150)"   />
<script>

function myFunction(e, low, high) {
console.log("low" + low);
console.log("high" + high);
var nextValue = e.target.value + e.key;
console.log("NEXT VALUE:" + nextValue);
if (e.which == 8) { // allow backspace
return;
}
if (!/^(d+)?([.]?d{0,1})?$/.test(nextValue)) {
e.preventDefault(); // non-number, don't allow
}
if (nextValue > high) {
e.preventDefault();
}
if(nextValue< low){
e.preventDefault();
}

}
</script>
</html>

您的regex已经差不多完成了,但是还需要添加一些内容。试试这个正则表达式:

/^-?d+(.d+)?$/

你目前的实现也不允许,例如,10.24,上面应该工作得很好。如果这是故意的,只需将d+更改为d-这将确保,如果用户输入.,他们至少在后面有一个数字。

最新更新