Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Варианты форматирования номера телефона (https://javascript.ru/forum/misc/70009-varianty-formatirovaniya-nomera-telefona.html)

AlexTrader 03.08.2017 07:41

Варианты форматирования номера телефона
 
Доброго времени суток, форумчане! Как отформатировать различные номера телефонов? Есть функция, форматирует только мобильный телефон, и шестизначный, возможно ли её сделать более универсальной, например pair1 и pair2 рассчитывать от конца номера, тогда привязка к длине номера не нужна будет.
function formatPhone(phone) {
        if (phone.length === 11) {
            var countryCode = phone.slice(0, 1);
            var operatorCode = phone.slice(1, 4);
            var triade = phone.slice(4, 7);
            var pair1 = phone.slice(7, 9);
            var pair2 = phone.slice(9, 11);
            return "+"+countryCode + "(" + operatorCode + ")" + triade + "-" + pair1 + "-" + pair2;
        }
        if (phone.length === 6) {
            var countryCode = "7";
            var cityCode = "8443";
            var pair1 = phone.slice(0, 2);
            var pair2 = phone.slice(2, 4);
            var pair3 = phone.slice(4, 6);
            return "+" + countryCode + "(" + cityCode + ")" + pair1 + "-" + pair2 + "-" + pair3;
        }
        return phone;
    };

AlexTrader 03.08.2017 07:45

Если приходит номер 88443454545 то должно отформатироваться так: +7(8443)45-45-45, а на деле форматируется как сотовый номер: +7(844)345-45-45, захарткодить код города не самая удачная идея, коды городов разные приходят...

Nexus 03.08.2017 09:30

Загугли «jquery mask»

ksa 03.08.2017 09:50

Цитата:

Сообщение от AlexTrader
Если приходит номер 88443454545

Земляк? :D
Или код города случайно взял?

laimas 03.08.2017 09:55

ksa,
взломали, и завтра позвонят из "полиции" и скажут, что ваш сын/брат/дочь/сестра задержан за преступление, но можно договорится. )

ksa 03.08.2017 10:23

laimas, это номер "Водопроводно-канализационное хозяйство". :D

AlexTrader 03.08.2017 10:26

Цитата:

Сообщение от ksa (Сообщение 460478)
Земляк? :D
Или код города случайно взял?

Случайно взял:yes:

laimas 03.08.2017 10:28

Цитата:

Сообщение от ksa
это номер "Водопроводно-канализационное хозяйство"

крепко влипли ребята. :)

AlexTrader 03.08.2017 10:28

Цитата:

Сообщение от Nexus (Сообщение 460473)
Загугли «jquery mask»

Мне этот вариант не подходит... Там маска привязывается к input, а я делаю template к гриду, который должен вернут отформатированную строку

AlexTrader 03.08.2017 10:30

Хотя возможно как то можно... Вот код в котором вызываю вышеописанную функцию
app.fioWithPhoneTpl = function (row) {
        return "<div><span style='float: left;'>" + formatFio(row.clientFio) + "</span><span style='float: right;'>" + formatPhone(row.clientPhone) + "</span></div>";
    };


Часовой пояс GMT +3, время: 18:12.