Как разрешить в input вводить только один русский символ и работало Ctrl + Z

Как мне сделать так, чтобы работало сочетание клавиш Ctrl + Z, после того, как я ввёл русский символ?
Сейчас у меня это сочетание клавиш не убирает введенный символ, если после ввода русского символа попробовать ввести любой другой символ

edit.addEventListener('input', function(e) {
  if (!e.target.value.match(/[а-яА-ЯёЁ]+/)) {
    e.target.value = '';
  }
  if (e.target.value.length > 1) {
    e.target.value = e.target.value[0];
  }
});
<input id="edit" placeholder="Введите букву!">


Ответы (1 шт):

Автор решения: Leonid

Если стоит русская раскладка, то 'я'?

let edit = document.getElementById('edit');

edit.addEventListener('input', function(e) {
  if (!e.target.value.match(/[а-яА-ЯёЁ]+/)) {
    e.target.value = '';
  }
  if (e.target.value.length > 1) {
    e.target.value = e.target.value[0];
  }
});

edit.addEventListener('keydown', e => {
  if ((e.key == 'я' || e.key == 'Я' || e.key == 'z' || e.key == 'Z') && e.ctrlKey) {
    e.preventDefault()
    edit.value = edit.value.slice(0, -1);
    // Если один символ, то можно:
    // edit.value = '';
  }
})
<input id="edit" placeholder="Введите букву!">

→ Ссылка