Итак, я создаю счетчик паролей только для практики. У меня есть текстовое поле, где пользователь будет вводить свой пароль для проверки. Он обновляется автоматически при вводе текста, поэтому ввод пароля и нажатия кнопки невозможен.
Что приводит меня к моей проблеме. Если пользователь нажимает кнопку возврата, он отрезает символ от конца строки, проблема в том, что если курсор перемещается, чтобы сказать, середина пароля и символ удаляются, он все еще только отрезает символ от END не положение курсора. То же самое происходит при выделении и удалении части или всего пароля, при этом удаляется только конечный символ.
Теперь я, очевидно, могу видеть, в чем заключается проблема в коде, поскольку в данный момент он просто использует pass.slice ( 0, -1), что, конечно, удалит последний символ.
Мой вопрос: есть ли функция или метод, который я могу использовать, чтобы иметь возможность удалять символы в зависимости от расположения курсор /, если пользователь выделяет и удаляет.
Я думаю, что некоторый код псевдо будет ..
if (keycode == 8) {
pass.slice(0,cursorposition -1);
}
Вот соответствующий код, который я сейчас использую.
passDOM.addEventListener('keydown', function(e) {
strengthInit(e); //pass the event to the initiation class
});
function strengthInit(eKey) {
if (eKey.keyCode == 8) { //user pressed the backspace button
if (pass.length == 1) { //check to see if user deleted the password
pass = "";
document.getElementById("resultContainer").remove(); //remove the results
} else {
pass = pass.slice(0, -1); //remove a character
finalScore = PasswordSecurity(pass); //run through the checker
}
} else if (eKey.keyCode == 46 ) { //Delete key was pressed
//TODO: determine the lcoation of the cursor and delete one before or after
} else { //user has entered a new character, append to the end of the string
pass += eKey.key
finalScore = PasswordSecurity(pass); //run through the checker
}
}