В AngularJS мне нужно форматировать номера телефонов во время их ввода. Я не хочу использовать какую-либо библиотеку, поскольку это должно быть прямолинейно.Номер телефона Regex в реальном времени
Формат мне нужно: 99 99 99 99 99
var phone = tel.replace(/\D*(\d{2})\D*(\d{2})\D*(\d{2})\D*(\d{2})\D*(\d{2})\D*/, '$1 $2 $3 $4 $5');
Но это форматирует только мой номер, когда он был полностью набран. Как я могу заставить это регулярное выражение работать, когда число еще не закончено?
Затем я попытался это:
var phone = tel.replace(/\D*(\d{2})\D*(\d{0,2})?\D*(\d{0,2})?\D*(\d{0,2})?\D*(\d{0,2})?\D*/, '$1 $2 $3 $4 $5');
Но это, очевидно, добавление заменимых требуется пространство.
Ну, это строго вопрос регулярного выражения. выражение будет совпадать, как только все группы будут распознаны. Угловая часть в порядке. – curuba
Просто запустите регулярное выражение при каждом изменении. Для этого используйте onchange или keyup-listenener. – mercredo
Вы можете сэкономить боль в голове и удалить «не требуемые пробелы» на втором этапе, обернуть предмет в фильтр. – AJcodez