2016-04-21 8 views
0

Ich habe eine Zeichenfolge wie "ABCD000215" ich brauche getrennt in Zeichenfolge und numerisch aufgeteilt. Ich muss hinzufügen, Bruch zwischen der Zeichenfolge und Nummersplit string und numeric in angularjs

meinen Code

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

Das Ergebnis wie dieses

ABCD 
000215 
+0

Haben Sie versucht, einen Filter zu erstellen? Ich denke, dass sie Ihren Bedürfnissen am besten entsprechen. https://docs.angularjs.org/tutorial/step_09 – Vivendi

+3

'" ABCD000215 ".match (/ \ d + | [a-z] +/ig)' –

Antwort

2

Sie können einen Angular filter verwenden.

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'); 
    }; 
}); 

Hier ein Beispiel: https://plnkr.co/edit/G6ltclPLxRpijruYjcqy?p=preview

+0

Ihr Plunk funktioniert nicht. –

+1

Nicht sicher, was dort passiert ist, scheint es jetzt zu arbeiten. – carlcheel

0

sein Versuchen Sie, diese

[a-z]+|\d+ 

Regex demo

Erläuterung:
+: Ein oder mehr sample
|: Makel/OR Operand sample
\: Escapes Sonderzeichen sample

0

hier, um diese Plunker überprüfen I Erstellt .. Hoffe, das hilft :)

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