如何使用angularJS拆分字符串

时间:2013-07-03 12:33:09

标签: javascript angularjs

我想知道我是否可以在angularJS中简单地分割字符串。 我有我的

 $scope.test = "test1,test2";

在我的控制器中,在我看来, 我想做那样的事情

{{test[0] | split(',')}}
{{test[1] | split(',')}}

我已经看到很多关于输入和ng-change调用控制器中的一个函数,它将字符串或某些内容与ng-list分开,但在我的情况下没有任何作用。

总而言之。

4 个答案:

答案 0 :(得分:88)

您可能希望将该功能包装到过滤器中,这样您就不必将mySplit功能放在所有控制器中。例如

angular.module('myModule', [])
    .filter('split', function() {
        return function(input, splitChar, splitIndex) {
            // do some bounds checking here to ensure it has that index
            return input.split(splitChar)[splitIndex];
        }
    });

从这里开始,您可以按原定使用过滤器

{{test | split:',':0}}
{{test | split:',':0}}

http://docs.angularjs.org/guide/filter的更多信息(感谢罗斯)

Plunkr @ http://plnkr.co/edit/NA4UeL

答案 1 :(得分:46)

大家好,我终于找到了解决方案,一个非常基本的解决方案.. 在我的控制器中我有

$scope.mySplit = function(string, nb) {
    var array = string.split(',');
    return array[nb];
}

在我看来

{{mySplit(string,0)}}

答案 2 :(得分:28)

您可以尝试这样的事情:

$scope.test = "test1,test2";
{{test.split(',')[0]}}

现在,当您尝试{{test.split(',')[0]}}时,您将获得“ test1

当您尝试{{test.split(',')[1]}}

时,您将获得“ test2

这是我的plnkr:

http://plnkr.co/edit/jaXOrZX9UO9kmdRMImdN?p=preview

答案 3 :(得分:1)

你可以试试这个:

$scope.testdata = [{ 'name': 'name,id' }, {'name':'someName,someId'}]
$scope.array= [];
angular.forEach($scope.testdata, function (value, key) {
    $scope.array.push({ 'name': value.name.split(',')[0], 'id': value.name.split(',')[1] });
});
console.log($scope.array)

通过这种方式,您可以保存数据供以后使用,并使用ng-repeat进行访问:

<div ng-repeat="item in array">{{item.name}}{{item.id}}</div>


我希望这有助于某人,
Plunker链接:here
根据上面的答案,所有学分都归@jwpfox和@Mohideen ibn Mohammed所有。