onKeyPress По сравнению с onKeyUp и onKeyDown

Я не изменил область регулярных выражений, чтобы она была блоком кода, поэтому он не работал.

Теперь это работает! Одна вещь, которую вы должны учитывать, это то, что не может быть '\ t'. Но

каждый подобранный текст соответствует формату даты, такому как 05/12/2016 02:03 или заканчивается.

\(PID-\d{6}\)[\n\r\t\s]*:(?:.|[\n\r\t\s])*?(?=[0-9]{2}\/[0-9]{2}\/[0-9]{4}[\n\r\t\s]*[0-9]{2}:[0-9]{2}|$)

enter image description here

294
задан Brian Tompsett - 汤莱恩 23 August 2019 в 06:34
поделиться

3 ответа

Посмотрите здесь заархивированную ссылку, которая изначально использовалась в этом ответе.

Из этой ссылки:

Теоретически, события keydown и keyup представляют собой нажатие или отпускание, в то время как событие нажатия клавиши представляет собой ввод символа. Реализация теории не одинакова во всех браузерах.

173
ответ дан 23 November 2019 в 01:37
поделиться

Несколько практических фактов, которые могли бы быть полезными для решения, какое событие обработать (запускает скрипт ниже и внимание на поле ввода):

$('input').on('keyup keydown keypress',e=>console.log(e.type, e.keyCode, e.which, e.key))
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input/>

Нажатие:

  • не ключи вставки/ввода (например, Сдвиг , Ctrl ) не инициируют keypress. Нажмите Ctrl и выпустите его:

    Управление keydown 17 17

    Управление keyup 17 17

  • ключи с клавиатур, которые применяют преобразования символов к другим символам, могут привести к [1 125] Мертвый , и делают "дубликаты ключа" (например, ~ , Вґ ) на keydown. Нажмите Вґ и выпустите его для отображения двойного ´´:

    keydown 192 192, Мертвый

    нажатие клавиши keydown 192 192 ВґВґ

    180 180 Вґ

    нажатие клавиши 180 180 Вґ

    keyup 192 192, Мертвый

Кроме того, не вводящие исходные данные (например, расположился <input type="range">) все еще инициируют весь keyup, keydown и события нажатия клавиши согласно нажатым клавишам.

0
ответ дан 23 November 2019 в 01:37
поделиться

KeyPress, KeyUp и KeyDown аналогичны, соответственно: Click, MouseUp, и MouseDown.

  1. Down происходит первым
  2. Press происходит вторым (когда вводится текст)
  3. Up происходит последним (когда ввод текста завершен).

Исключением является webkit, в котором есть дополнительное событие:

keydown
keypress
textInput     
keyup

Ниже приведен фрагмент, который вы можете использовать, чтобы увидеть, когда происходят события:

window. addEventListener("keyup", log); window.addEventListener("keypress", log); window.addEventListener("keydown", log); function log(event){ console.log( event.type ); }
171
ответ дан 23 November 2019 в 01:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: