Siparat Asked:2022-07-16 22:33:34 +0800 CST2022-07-16 22:33:34 +0800 CST 2022-07-16 22:33:34 +0800 CST 如何验证银行卡的输入[关闭] 772 如何验证银行卡的输入,以便每 4 位有一个空格? javascript html 1 个回答 Voted Best Answer BabyFrontent.ru Admin 2022-07-17T01:41:43+08:002022-07-17T01:41:43+08:00 我已经在 Firefox、Opera 和 Chrome 中测试了这段代码,并将其注释掉,以便您更容易理解。 let input = document.querySelector("#bank-card-input"), numbers = /[0-9]/, regExp = /[0-9]{4}/ // добавляем слушатель события на инпут input.addEventListener("input",(ev)=>{ // не позволяем ввести ничего, кроме цифр 0-9, ограничиваем размер поля 19-ю символами if( ev.inputType === "insertText" && !numbers.test(ev.data) || input.value.length > 19){ input.value = input.value.slice(0, input.value.length - 1) return } // обеспечиваем работу клавиш "backspace","delete" let value = input.value if( ev.inputType === "deleteContentBackward" && regExp.test(value.slice(-4)) ){ input.value = input.value.slice(0, input.value.length - 1) return } // добавяем пробел после 4 цифр подряд if( regExp.test(value.slice(-4)) && value.length < 19){ input.value += " " } }) <input type="text" id="bank-card-input"> 这是我自己的解决方案,可能有些不完善。您还可以使用其他流行的解决方案,例如以下库: https ://github.com/RobinHerbots/Inputmask https://igorescobar.github.io/jQuery-Mask-Plugin/
我已经在 Firefox、Opera 和 Chrome 中测试了这段代码,并将其注释掉,以便您更容易理解。
这是我自己的解决方案,可能有些不完善。您还可以使用其他流行的解决方案,例如以下库:
https ://github.com/RobinHerbots/Inputmask
https://igorescobar.github.io/jQuery-Mask-Plugin/