【问题标题】:RegExp TAB in FirefoxFirefox 中的正则表达式选项卡
【发布时间】:2014-10-11 23:51:01
【问题描述】:

此代码适用于除 Mozilla Firefox 之外的所有流行浏览器。问题是 TAB 键不起作用。谁能弄清楚为什么?它连接到一种文本字段形式。我试过添加'\t',没有用。它适用于我的所有浏览器,除了 Firefox...

$('.mail').bind('keypress', function (event) {
    var regex = new RegExp("^[a-zA-Z0-9@\S._\n\r\b-]+$");
    var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
    if (!regex.test(key)) {
        event.preventDefault();
        return false;
    }
});

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    无需进入正则表达式,您可以通过与代码进行比较来轻松地允许 tab 按键:

    $('.mail').bind('keydown', function (event) {
        var regex = new RegExp("^[a-zA-Z0-9@\S._\n\r\b-]+$");
        var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
    
        if (!regex.test(key) && event.which != 9) {
            event.preventDefault();
            return false;
        }
    });
    

    如果您遇到更多应该有效的情况,但不是,最好重新访问正则表达式,但如果这是唯一的情况,那么这个快速解决方法就足够了。

    另请注意,我使用的是 keydown 而不是 keypress(event.which 在按键上抛出不同的代码)

    jsfiddle

    【讨论】:

    • 一个有趣的解决方案。是的,keydown……我可以及时解决……非常感谢!
    猜你喜欢
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-13
    • 1970-01-01
    • 1970-01-01
    • 2014-06-08
    相关资源
    最近更新 更多