如何在输入中输入英文?

时间:2017-03-19 12:30:16

标签: javascript jquery

我只需输入英文类型,为此输入添加功能:

function englishType() {
    $('input[lang^=en]').keypress(function(event){
        var ew = event.which;
        if(ew == 32)
            return true;
        if(48 <= ew && ew <= 57)
            return true;
        if(65 <= ew && ew <= 90)
            return true;
        if(97 <= ew && ew <= 122)
            return true;
        alert("error");
        return false;
    });
}

但是用户可以复制تست(其他语言中的任何单词)并粘贴此输入而不使用此代码!

.keypress不适用于Copy and Paste

我该如何解决?

1 个答案:

答案 0 :(得分:1)

首先,您需要使用keyup事件,而不是keypress

其次,如果您希望用户阻止粘贴非英文字符,则需要处理所有event.target.value以清除您不想要的字符,或引发错误,无论如何情况如此。你可以使用正则表达式;范围[a-zA-Z ]应该可以正常工作。您可以使用您愿意允许的其他字符来扩充它。

event.target.value.match( /[^a-zA-Z ]/ ) // Array if value outside the range

第三,和其他评论一样,你限制了很多英语单词,例如Résumé,所以这不一定是个好主意。但是,您的使用案例可能会有所不同。