Як встановити правильну позицію курсору

встановити

Є, наприклад, наступна форма

Відповідно, при введенні тексту, курсор йде або на початок або на кінець форми, а потрібно щоб залишався на місці, ті. якщо у мене скажемо в середині символи, що видаляються, то курсор йде в кінець наприклад, а потрібно залишити його там же, з урахуванням віддаленого символу

правильну

позицію

Винен, не правильно написав. Кінець зайвий. Точніше буде.

Сенс у тому, що replace щоразу замінює рядок і зсуває курсор у кінець, або на початок, залежно від браузера. А треба, щоб залишався у тій самій позиції.

Курсор сягає кінця, т.к. йде заміна value. Тобто воно видаляється і відразу вставляється інше.

Що загалом надмірно, тим більше навішене на keyup. Сенс у тому, щоб дозволяти вводити в поле тільки літери, так? "скасувати" (ctrl+z) після невалідного символу

Та й загалом треба робити інакше, приблизно так: вішаємо на потрібні події обробник, який скасовуватиме дію по дефолту (тобто вставку символу) при невиконанні опр. умови.

Ось тут є схожа тема, де я розписав якісь нестандартні події краще використовувати, саму ж логіку скрипта можна знайти в статті.