我正在尝试创建一个只在标准英文键盘 (az) 上注册字母表的正则表达式。但是,我目前拥有的正则表达式还注册了以字母开头的键......因此 ctrl、alt、shift、caps lock 等被识别为按下的有效键。我想尽我所能排除这些特殊键。这是我到目前为止所拥有的...向下注册键:componentDidMount() { document.addEventListener("keydown", this.handleKeyDown);};验证键是否为字母:handleKeyDown = (event) => { const regex = /^[A-Za-z]+$/ // validate key press is alphabetic if( regex.test(event.key) ) { console.log(event.key); } else { console.log(event.key); }; };
2 回答
鸿蒙传说
TA贡献1865条经验 获得超7个赞
您的正则表达式很好,但如果您只需要 1 个字符,请删除 + 号。
运行示例: https: //jsfiddle.net/uxa0zkor/
var msg = document.getElementById('state-msg');
document.body.addEventListener('keydown', function(e) {
const regex = /^[A-Za-z]$/
// validate key press is alphabetic
if( regex.test(e.key) ) {
//console.log(event.key);
msg.textContent = "a-z or A-z " + e.keyCode;
} else {
//console.log(event.key);
msg.textContent = "other than a-z or A-z " + e.keyCode;
};
});
汪汪一只猫
TA贡献1898条经验 获得超8个赞
你不需要正则表达式。只需检查“keyCode”是否在可接受的范围内。
大写字母介于 65 (A) 和 90 (Z) 之间。小写字母介于 97 和 122 之间。
添加回答
举报
0/150
提交
取消