Специальный ответ на 2017 год - Недавно столкнулся с той же проблемой.
Мы позволяли пользователям вводить только 3 цифры одновременно. Когда пользователь попытался ввести четвертый символ, мы вернули false.
Это стало проблемой, когда пользователь выбрал и пытался перезаписать значения.
Получив подсказку от ответа Тима. Я понял, что хотел бы узнать, был ли selection value
такой же, как input's value
.
В современных браузерах я достиг этого, выполнив:
document.getSelection().toString() === input.value // edited
Надеюсь, это кому-нибудь поможет.