使用 angularJs 格式化 phone 数字

format phone number using angularJs

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

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

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

正则表达式 /\D/g 匹配所有非数字字符,因此它会去掉除数字以外的所有字符。

试试这个:

formatLocal('US', phoneNumber)

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

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

现在,如果您还想还原它...使用 phone filter

我有一个输入字段,我需要从用户那里获取 phone 号码,但只有数字,这样可以很容易地使用数据库中的 phone 号码进行索引。我在 ng-keyup 上使用了 .replace,因此非数字字符会在用户键入时被删除。

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