在 JS 中输入时替换输入值

use*_*410 1 html javascript

我有一个inputmaxLength1。我想,如果我键入另一个value)的电流 value字母),输入内将与更换新的value字母)。

我试过这样的事情:

container.addEventListener('keyup', function (e) {
    var target = e.srcElement || e.target;
    var letter = target.value;
    var newLetter = letter.replace(/letter/g, letter);
    letter.value = newLetter;
});
Run Code Online (Sandbox Code Playgroud)

Nic*_*ons 5

您可以使用 更新输入框的值this.value并使用获取按下的键e.key。但是,如果按下,这将输入元键:

const container = document.getElementById('container');
container.addEventListener('keyup', function(e) {
  this.value = e.key;
});
Run Code Online (Sandbox Code Playgroud)
<input type="text" id="container" maxlength="1" />
Run Code Online (Sandbox Code Playgroud)

元键的问题可以e.key通过使用正则表达式检查是否是字母/数字字母来解决:

const container = document.getElementById('container');
container.addEventListener('keyup', function({key}) {
  if(/^[a-z0-9]$/i.test(key)) {
    this.value = key;
  }
});
Run Code Online (Sandbox Code Playgroud)
<input type="text" id="container" maxlength="1" />
Run Code Online (Sandbox Code Playgroud)