wooly
@wooly
Делаю фронт, пока не соскучусь за бэком

Как вывести номера телефона по маске?

Есть номер телефона +79031002020, на выводе надо его пропустить через функцию и выдать в итоге +7 903 100 2020.
Как такое сделать?

В голову приходит только не особо красивое решение:

const phoneMask = str =>{
        var num =   str.replace( /\D/g, '' ).split( /(?=.)/ ), i = num.length - 1;
        if ( 0 <= i ) num.unshift( '+ ' );
        if ( 1 <= i ) num.splice( 2, 0, ' ' );
        if ( 4 <= i ) num.splice( 6, 0, ' ' );
        if ( 7 <= i ) num.splice( 10, 0, ' ' );
        return num
    }
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
HistoryART
@HistoryART
Надзиратель
Click

const replacePhone = (phone) => phone.split('').map((el, i) => i === 1 || i === 4 || i === 7 || i === 9 ? el+' ' : el).join('');

console.log(replacePhone('+79031002020'));
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
alex4answ
@alex4answ
у вас же есть str.replace, можете там шаблоны использовать
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Artezio Могилев
от 2 800 до 3 300 $