Как мне отформатировать число, например: (99) 9999-9999, в: 9999999999, используя angularjs? кто-то сказал мне использовать phoneformat.js, но я не знаю, как реализовать это в моем проекте
форматировать номер телефона с помощью angularJs
Ответы (4)
Я не уверен, что вам нужно что-то особенное из Angular или какие-то специальные библиотеки. . . просто используйте базовый метод JS .replace()
и небольшое регулярное выражение:
var sPhoneNum = "(99) 9999-9999";
var sFormattedPhoneNum = sPhoneNum.replace(/\D/g, "");
// sFormattedPhoneNum equals "9999999999"
Регулярное выражение /\D/g
соответствует всем нечисловым символам, поэтому оно удалит все, кроме цифр.
так что, как сказал Талемин... решение состоит в том, чтобы просто удалить ненужный char... угловой способ сделать это через фильтр, я думаю... это jsfillde с примером...
myApp.filter('phoneToNum', function() {
return function(input, scope) {
return input.replace(/\D/g, "");
}
});
теперь, если вы также хотите вернуть его... используйте телефонный фильтр а>
Попробуй это:
formatLocal('US', номер телефона)
У меня было поле ввода, в котором мне нужно было получить номер телефона от пользователей, но только цифры, чтобы его было легко индексировать, используя номер телефона в базе данных. Я использовал .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, "");
};