javascript - onkeyup 函数只允许字母。同时也否定 PgUp、Del、ArrowLeft 等键
问题描述
我对 Javascript 很陌生,我有一个任务是创建一个字母猜谜游戏。我已经完成了所有工作,并且想要加倍努力并在按下字母以外的其他内容时发出警报。一两天前我发现了这个很好的例子..
toLowerCase() != key.toUpperCase()
但是输入仍然可以是任何箭头键和上面的六个键。onkeyup 为这些返回一个字符串,我正在尝试使用 charAt(1) 将它们单独列出。但它不起作用。
function isLetter(key) {
if (key.toLowerCase() != key.toUpperCase() && key.charAt(1) === '') {
return true;
} else {
return false;
}
}
和上键功能
document.onkeyup = function(event) {
keyPress = event.key;
if (!isLetter(keyPress)) {
return alert('Enter a letter');
}
}
解决方案
你的方法有一个潜在的错误。哪个是关键-等+也将通过测试。
使用正则表达式来测试击键可能会更好:
function isLetter(key) {
// This regular expression tests if the key is only a single character from a to z
return key.match(/^[a-z]$/);
}
document.onkeyup = function (event) {
keyPress = event.key;
if (!isLetter(keyPress)) {
return alert('Enter a letter');
}
}
推荐阅读
- javascript - 为什么我不能将 AdjecentHTML 插入文本区域?
- javascript - 如何在JS中以隐藏模式运行exe?
- python-3.x - 单元测试中的 AssertionError
- sql - Conversion issue from string to decimal in redshift
- php - Problem with joining three tables in Laravel
- c# - 在 SignalR Core 的 Hub 之外访问或注入 HubCallerContext
- android - How to set major and minor grid lines using Androidplot?
- animation - 如何使用 Three.js 动画系统为相机设置动画?
- android - 安卓。是否有进入默认应用页面的意图?
- json - 如何引用文件中的单个元素?