使用angularJs格式化电话号码

时间:2015-03-13 20:16:39

标签: javascript angularjs number-formatting phone-number angular-filters

如何使用angularjs将数字格式化为:(99)9999-9999:9999999999?有人告诉我使用phoneformat.js,但我不知道如何在我的项目中实现它

4 个答案:

答案 0 :(得分:1)

我不确定您需要Angular或任何特殊库中的任何特殊内容。 。 。只需使用基本的JS .replace()方法和一点regex:

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

正则表达式/\D/g匹配所有非数字字符,因此它会删除除数字之外的所有内容。

答案 1 :(得分:1)

所以像talemyn说...解决方案只是删除不需要的字符...有角度的方法是通过过滤器我猜...这是一个jsfillde 举个例子......

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

现在如果你还想恢复它......使用 phone filter

答案 2 :(得分:0)

试试这个:

formatLocal('US',phoneNumber)

答案 3 :(得分:0)

我有一个输入字段,我需要从用户那里获取电话号码,但只需要数字,以便使用数据库中的电话号码轻松索引。我在ng-keyup上使用了.replace,因此当用户输入时,非数字字符将被删除。

in 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, "");
};