javascript - Jquery - Chrome 和 Firefox 中的正则表达式按键操作不同

标签 javascript jquery regex google-chrome firefox

我正在使用此正则表达式和此代码仅用于数字输入

var numRegex = "[0-9\b]";

$('.numOnly').keypress(function(e){
    var regex = new RegExp(numRegex);
    var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
    if (regex.test(str)) {
        return true;
    } else {
    e.preventDefault();
    return false;
    }});

我的代码在 Chrome 中运行良好,包括数字输入、退格键、返回键、Home、End、Shift 和 Ctrl,但在 Firefox 中我只能输入数字和退格键。

使用数字输入和使用正则表达式的其他所需内容是否有更好的解决方案?

谢谢

最佳答案

你可以使用

<input type="text" onkeypress="return (event.charCode == 8 || event.charCode == 0) ? null : event.charCode >= 48 && event.charCode <= 57" name="numOnly" /> 

不需要特殊的 JQuery 处理。 (event.charCode == 8 || event.charCode == 0) ? 检查旨在支持 FireFox 中的 BACKSPACE 和 DELETE 键。

关于javascript - Jquery - Chrome 和 Firefox 中的正则表达式按键操作不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36903908/

相关文章:

javascript - Firebase 中的 auth.currentUser.updateProfile 之后未触发 auth.onAuthStateChanged

jQuery 丢失格式

jquery - Bootstrap 选项卡 : load NGL viewer into tab

javascript - JS 选择的元素在 css 菜单中没有正确显示

java - 如何使用 Pattern 和 Matcher 获取所有找到的组

javascript - 加拿大邮政编码的正则表达式

javascript - JavaScript 对象是单向链接还是双向链接?

javascript - Chrome 丰富通知仅适用于扩展程序?

javascript - [Value] 以外的正则表达式

java - 无法在小程序中使用 swing UI - 调用公共(public)方法