在angularjs中拆分字符串和数字

时间:2016-04-21 10:20:54

标签: angularjs regex split

我有一个字符串," ABCD000215"我需要分别分成字符串和数字。我需要在字符串和数字之间添加中断

我的代码

<div class="box-label">{{item.stringVal}}</div> 

结果将是这样的

 ABCD
 000215

3 个答案:

答案 0 :(得分:3)

您可以使用Angular filter

HTML:

<body ng-controller="MainCtrl as main">
    <div class="box-label">{{main.stringVal | splitStringAndNumber}}</div> 
</body>

JS:

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

app.controller('MainCtrl', function() {
  this.stringVal = "ABCD12334234";
});

app.filter('splitStringAndNumber', function($filter){
    return function(string){
      var matches = string.match(/\d+|[a-z]+/ig);
      return matches.join('\r\n');
    };
});

以下是一个示例:https://plnkr.co/edit/G6ltclPLxRpijruYjcqy?p=preview

答案 1 :(得分:0)

试试这个

[a-z]+|\d+

Regex demo

<强>解释
+:一个或多个sample |:替代/或操作数sample
\:转义特殊字符sample

答案 2 :(得分:0)

在这里检查我创建的这个Plunker ..希望这有助于:)

 var app = angular.module('app', []).filter('checkmark', function() {

   return function(input, regex) {
      var patt = new RegExp(regex);      
      var out = [];
      for (var i = 0; i < input.length; i++){
          if(patt.test(input[i]))
              out.push(input[i]);
      }      
    return out;
  };
});

app.controller('ctrl',function($scope){
  $scope.a = "ABCD000215";

});



<p>Sum: {{a | checkmark : '^[0-9]*$'}}</p>

    <p>Sum: {{a | checkmark : '^[a-zA-Z]*$'}}</p>

https://plnkr.co/edit/irKm0idyEy7jglYz5e6R?p=preview