0

我使用md-autocomplete指令作为邮政编码查找的地址。我想将用户在控件中键入的内容限制为仅五位数的邮政编码。它必须是数字,并且限制为 5 个数字。

如何在md-autocomplete中实现这一点?

4

1 回答 1

1

您可以使用过滤器实现此目的:http: //jsfiddle.net/uhmgp23h/2/

<body ng-app="MyApp">
    <div ng-controller="MyController">
        <input type="text" ng-model="zip" />
    </div>
</body>

js

var app = angular.module('MyApp',[]);
app.controller('MyController', function($scope, $filter)
{
    $scope.zip = '';
    $scope.$watch('zip', function(newVal, oldVal)
    {
        var value = String(newVal);   
        var number = value.replace(/[^0-9]+/g,'');
        $scope.zip = $filter('numberFixedLen')(number,5);
    });
});

app.filter('numberFixedLen', function()
{
      return function(n, len)
      {
          var num = parseInt(n);
          if (String(num).length > len) return n.substring(0, len);
          return num;
      };
});

此过滤器将字段限制为仅数字,并将其限制为 5 个字符。此过滤器适用于任意数量的字符,只需5在此行中更改为您想要的任何字符$filter('numberFixedLen')(number,5);

于 2015-06-26T22:29:48.210 回答