如何禁止input输入不正确的内容

问题:
input框中加入输入规则,如

        e.detail.value = e.detail.value.replace(/\.{2,}/g, ".")
        e.detail.value = e.detail.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3')

但是这种用replace的效果不好,因为是等到用户输入后再进行判断,能否实现当用户输入当时候,如果输入的不对,就不让用户输入了,就不会有之前闪烁的感觉

阅读 2.5k
3 个回答
test.onkeypress = function (e) {
    const newString = this.value + String.fromCharCode(e.keyCode);
    function testSomething(newString, keyCode) {
        // 在这里对输入的字符或者输入框中的内容进行判断
        return keyCode > 100;
    }
    if (testSomething(newString, e.keyCode)) {
        return true;
    }
    return false;
}

监听input事件不就可以实时判断了吗,题主监听什么事件

你的思路有一点问题,你怎么知道用户输入会是什么,如果不等用户输入了,拿什么来判断?
所以必须是有用户输入了,结果不符合要求进行处理(比如这里删除掉2个以上的点)。
后面是保留2位小数。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题