为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取文本框的无限值

如何获取文本框的无限值

DIEA 2023-05-19 19:58:47
我如何更改用户能够键入 0 到无穷大的值?因为此时只允许用户输入0-9。function validate() {  var values = document.getElementById("digit").value;  if (/^[0-9]$/.test(values) == false) {    document.getElementById("numbers").innerHTML = "This is not a number, number must be greater or equal to zero";    return false;  }  return true;}
查看完整描述

3 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

使用typeof和三进制运算符+检查它是否大于等于 0


function validate() {

  var value = document.getElementById("digit").value;


  if (!(!isNaN(+value) && value >= 0)) {

    document.getElementById("numbers").innerHTML = "This is not a number, number must be greater or equal to zero";

    return false;

  }

  document.getElementById("numbers").innerHTML = "";

  return true;

}

<input onkeyup="validate()" value="" id="digit" />


<p id="numbers"></p>


查看完整回答
反对 回复 2023-05-19
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

您的正则表达式正在寻找字符串开头和结尾之间的一位且仅一位数字。

尝试/^[0-9]$+/
意思+是“至少一个,最多无限”,无论它被卡住什么。


查看完整回答
反对 回复 2023-05-19
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

使用本机方法Number.isInteger()检查最后一个字符是否为数字。如果没有,请切片。

function validate(el) {

  var lastChar = Number(el.value.slice(-1));

  if (!Number.isInteger(lastChar)) {

    el.value = el.value.substring(0, el.value.length - 1);

  };

}

<input type="text" oninput="validate(this)">



查看完整回答
反对 回复 2023-05-19
  • 3 回答
  • 0 关注
  • 107 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信