Angularjs中的4位数字格式

时间:2018-02-27 05:59:00

标签: angularjs angular-filters

我的应用程序有这样的要求,用户在文本框字段中键入一个值,并在下面的框中平行显示。但问题是我希望格式类似 1234-1234-1234 (包括破折号)。这可能吗?我尝试使用角度过滤器,但似乎无法正常工作。

1 个答案:

答案 0 :(得分:2)

假设您正在使用Angular 1.X,我建议您为此创建一个指令,以便更好地控制该元素。

尝试以下



var app = angular.module('TestApp', []);

app.directive('inputFormat', function() {
  return {
    restrict: 'AE',
    replace: true,
    template: '<input type="text" ng-model="inputVal" placeholder="Enter a number" />',
    link: function(scope, elem, attrs) {
      elem.bind('keyup', function() {
        var inputElm = elem.val().split("-").join(""); // remove hyphens
        if (inputElm.length > 0) {
          inputElm = inputElm.match(new RegExp('.{1,4}', 'g')).join("-");
        }
        elem.val(inputElm);
      });
    }
  };
});

app.controller('MyCtrl', function($scope) {
  $scope.search = function(element) {
    console.log(element);
    alert("keypressed. Value so far is: " + element.val());
  };
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="TestApp">
  <div ng-controller="MyCtrl">
    <input-format/>
  </div>
</div>
&#13;
&#13;
&#13;

以下是http://jsfiddle.net/anandgh/6unogzyh/

希望这有帮助