gpt4 book ai didi

javascript - Js key 限制但有点怜悯?

转载 作者:行者123 更新时间:2023-11-29 10:50:05 25 4
gpt4 key购买 nike

我使用 JS 构建了一个只接受数字的机制:

但是我想允许:删除, 退格键 , 左箭头 ,右箭头 :

我想到的解决方案是:

假设我用 html 编写(我知道发送事件不好,但请关注 Js 代码):

<input  onKeyPress='return CheckDigit(event)'/>



function CheckDigit(evt)
{
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (((charCode >= 48) && (charCode <= 57)) || checkIfDelOrNavigate(charCode)))
return true;
return false;
}

function checkIfDelOrNavigate(c)
{
if (((c == 46) || (c == 39) || (c == 37) || (c == 8))) return true;return false;
/*46=delete , 39,37 = arrows , 8=backspace*/
}

问题:

  • 这是正确的解决方案吗? (如果不是,请您提供答案)

  • 我假设它可以更改为正则表达式检查:

代码:

 var regEx =/^[0-9]+$/;    
isValid = regEx.test(keyChar);
return isValid;

但是完整的 regEx 表达式是什么?

附注:奇怪,但我看到的所有解决方案都不允许 DeleteBackspaceleft arrow right arrow 字符,只是类别本身。

最佳答案

我结合了 this question 的答案通过以下检查以确保我只捕获数字,同时允许使用不可打印的字符。不过,您必须对粘贴操作执行一些操作。

return !window.isNaN(String.fromCharCode(event.which))

参见 jsFiddle .

关于javascript - Js key 限制但有点怜悯?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12026749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com