Firefox中的RegExp TAB

时间:2014-10-11 23:51:02

标签: javascript regex

此代码适用于除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;
    }
});

1 个答案:

答案 0 :(得分:0)

不进入正则表达式,您可以通过与其代码进行比较轻松地允许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