JavaScript

отступ при вводе текста

Нужно чтобы при вводе номера телефона делался автоматически отступ. Например вводят 89991532200, а надо 8 999 153 22 00. Желательно без jquery, так как кода мало и подключать библиотеку для этого не хотелось. Кто знает помогите пожалуйста.
Nathan Calhoun
Nathan Calhoun
446
https://www.npmjs.com/package/libphonenumber-js - такую штуку нашел, но мне сложно в нем разбираться...

Если на чистом JS, есть такой вариант: https://jsfiddle.net/OPTlMUS/rqcyau5d/
При вводе каждого числа проверяет - стоят ли пробелы в нужных местах. Если нет - добавляет их. Если "==" означает совпадение двух значений, то "!==" значит "не совпадает". А slice() разрезает строку в указанных местах.

< input id="moo" >

document.getElementById('moo').addEventListener('keyup',function(){
let x = document.getElementById('moo');
if(x.value.slice(1,2) !== ' ' && x.value.length > 1) {
x.value = x.value.slice(0,1) + ' ' + x.value.slice(1,14);
}
if(x.value.slice(5,6) !== ' ' && x.value.length > 5) {
x.value = x.value.slice(0,5) + ' ' + x.value.slice(5,14);
}
if(x.value.slice(9,10) !== ' ' && x.value.length > 9) {
x.value = x.value.slice(0,9) + ' ' + x.value.slice(9,14);
}
if(x.value.slice(12,13) !== ' ' && x.value.length > 12) {
x.value = x.value.slice(0,12) + ' ' + x.value.slice(12,14);
}
});
___________________

Одновременно условия && x.value.length > 1
Нужны, чтобы в случае удаления введенного числа - оно повторно не проверяло, есть ли там пробел, и не добавляла новый.
МФ
Маркус Фон Барон
62 360
Лучший ответ
Помочь С ЧЕМ, где код твоей попытки решить эту задачку?
(это решается в одну строку, так что не надорвешься если попробуешь)
Ruslan $$$$$
Ruslan $$$$$
88 833
Библиотеки на то и существуют, чтоб их подключать и не совершать лишней работы. Не бойтесь их подключать - от таких lightweight библиотек никакого ущерба проекту вы не нанесёте.