форматировать номер телефона с помощью angularJs

Как мне отформатировать число, например: (99) 9999-9999, в: 9999999999, используя angularjs? кто-то сказал мне использовать phoneformat.js, но я не знаю, как реализовать это в моем проекте


person Stack two    schedule 13.03.2015    source источник
comment
Я бы начал с Инструкций по установке, а затем перешел к Часто задаваемые вопросы. Наконец, ознакомьтесь с демонстрационной частью. Тогда попробуйте, и тогда мы поможем, когда вы застряли :)   -  person KJ Price    schedule 13.03.2015


Ответы (4)


Я не уверен, что вам нужно что-то особенное из Angular или какие-то специальные библиотеки. . . просто используйте базовый метод JS .replace() и небольшое регулярное выражение:

var sPhoneNum = "(99) 9999-9999";
var sFormattedPhoneNum = sPhoneNum.replace(/\D/g, "");
// sFormattedPhoneNum equals "9999999999"

Регулярное выражение /\D/g соответствует всем нечисловым символам, поэтому оно удалит все, кроме цифр.

person talemyn    schedule 13.03.2015
comment
Я предполагаю, что угловым способом было бы просто поместить это в фильтр :), но я согласен, что это был бы лучший и самый простой способ... не нужно начинать включать внешние файлы, просто чтобы убрать все, кроме числовых... это правильный ответ, просто поместите его в собственный фильтр и затяните ... он угловат :) - person Jony-Y; 13.03.2015
comment
Да, хороший момент. . . вам действительно нужно подключить его к вашему угловому коду, чтобы он работал. :) Но да, это довольно простая логика форматирования. . . конечно, нет необходимости в каких-либо сверхмощных инструментах, чтобы сделать это. - person talemyn; 13.03.2015
comment
да :) вот почему я проголосовал за ответ :) Я просто добавил ответ фильтра ниже, если он захочет фильтр ... - person Jony-Y; 14.03.2015

так что, как сказал Талемин... решение состоит в том, чтобы просто удалить ненужный char... угловой способ сделать это через фильтр, я думаю... это jsfillde с примером...

myApp.filter('phoneToNum', function() {
    return function(input, scope) {
        return input.replace(/\D/g, "");
    }
});

теперь, если вы также хотите вернуть его... используйте телефонный фильтр

person Jony-Y    schedule 13.03.2015

Попробуй это:

formatLocal('US', номер телефона)

person Greg Lafrance    schedule 13.03.2015

У меня было поле ввода, в котором мне нужно было получить номер телефона от пользователей, но только цифры, чтобы его было легко индексировать, используя номер телефона в базе данных. Я использовал .replace для ng-keyup, поэтому нецифровые символы удаляются при вводе пользователем.

в HTML

<input ng-keyup="formatNum()" ng-model='data.phone' placeholder="Phone Number" />  

в контроллере

$scope.formatNum = function() {
 if ($scope.data.phone)
      $scope.data.phone = $scope.data.phone.replace(/\D/g, "");
};
person Udeep    schedule 09.12.2016
comment
если нет сохраните в этой форме +9334 46437658 0093 3446437658 03446437658 получите номер телефона в этой форме 3446437658 - person Hassan Abbas; 07.07.2017