Как можно реализовать правильное автозаполнение input`ов номера телефона и пароля
Нужно реализовать такую функцию: Есть инпут "Номер телефона" Есть инпут "Пароль" Если пользователь копирует одновременно логин и пароль в виде (+7(999)999-99-99 qwerty) или (+7999-999-99-99 qwerty) или (79 99)99 9999 qwerty и т.д),нужно повесить на обработчик onPaste такую функцию,которая сможет обрабатывать данные из буфера обмена и при вставке из буфера обмена автоматически заполнять поле телефона и пароля,то есть убирая все пробелы,скобочки и плюсы в номере телефона и приводя телефон к виду 79209309292
onPasteAutorize = (e) => {
const subArr = e.clipboardData.getData('text').trim().split(/\s+/)
setTimeout(()=>{
const subStr = subArr.join("").replace(/\+/,'').replace(/\(/,'').replace(/\)/,'')
const login = subStr.substring(0,11)
const password = subStr.substring(11)
this.onLoginChange(login)
this.onPasswordChange(password)
},100)
e.preventDefault()
}
Есть такой код,но проблема в том,что если копировать номер без + и (),то он убирает их из пароля(если они там присутствуют) Направьте,пожалуйста,на путь истинный!
Ответы (1 шт):
А если в два этапа?
str = "7922-234-56-78 MySupErPuPERpa55woRD"
pNum = str.replace(/[^0-9]/g,'').substring(0,11); // Удаляем все символы, которые не являются цифрами и берем первые 11 символов.
sep = pNum.slice(-1) + " "; / Разделитель - последняя цифра номера и пробел.
pwd = str.split(sep);
pwd = pwd[1];