Javascript 正则表达式不允许重音字符

Javascript 正则表达式不允许重音字符,javascript,regex,macos,Javascript,Regex,Macos,我希望用户只能输入英文字符,下面的代码可以工作,但在mac电脑上,如果您持有字母“a”,例如,您可以插入重音字符,如“a”。我尝试了一些不同的方法来使用keydown、keyup等,但即使在释放密钥时,它也认为输入的值是“a”,所以它通过了正则表达式。有人知道哪里出了问题,或者有更好的方法吗 $(“.会标字母”)。在(“按键”,功能(e){ var englishAlphabet=/[A-Za-z]/g; var key=String.fromCharCode(e.which); if(英语字

我希望用户只能输入英文字符,下面的代码可以工作,但在mac电脑上,如果您持有字母“a”,例如,您可以插入重音字符,如“a”。我尝试了一些不同的方法来使用keydown、keyup等,但即使在释放密钥时,它也认为输入的值是“a”,所以它通过了正则表达式。有人知道哪里出了问题,或者有更好的方法吗

$(“.会标字母”)。在(“按键”,功能(e){
var englishAlphabet=/[A-Za-z]/g;
var key=String.fromCharCode(e.which);
if(英语字母测试(键)){
console.log('true');
返回true;
}否则{
console.log('false');
}
返回false;
});
$(“.字母组合”)。关于(“粘贴”,函数(e){
e、 预防默认值();
});

我最终选择的解决方案是检查最后一个字符串,然后清空带有重音字符的输入

    var $monogramInput = $('.monogram-letters');
    var englishAlphabet = /^[a-z]+$/i;

     $monogramInput.on("keypress", function(e) {
        var key = String.fromCharCode(e.which);

        if(englishAlphabet.test(key)) {
            return true;
        }
        return false;

    }).blur(function() {
        var enteredValue = $(this).val();

       if(!enteredValue.match(englishAlphabet)) {
            $(this).val('');
        }
    });

您可以指示输入文本仅接受英文字符:

<input pattern="[a-z]" />


显然,您还需要验证服务器端。

这是宽字符/预合成字母还是多字节字母?试试
/^[A-Za-z]$/