首页 > 解决方案 > 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');
  }
}

标签: javascriptfunction

解决方案


你的方法有一个潜在的错误。哪个是关键-+也将通过测试。

使用正则表达式来测试击键可能会更好:

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');
	}
}


推荐阅读