微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript-Js密钥限制,但有一点怜悯?

我使用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表达式将是什么?

ps. :
奇怪,但是我看到的所有解决方案都不希望Delete,Backspace,左箭头,右箭头chars,仅允许类别本身.

解决方法:

我将this question的答案与以下检查相结合,以确保只捕获数字,同时允许使用不可打印的字符.但是,您必须对粘贴操作做些事情.

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

参见jsFiddle.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐