在angularjs控制器中拆分一个字符串

时间:2017-05-10 12:05:25

标签: angularjs asp.net-mvc

我正在尝试将单个字符串拆分为数组或JSON格式。请在角度js控制器(不是HTML视图)中帮助完成此操作。

字符串格式如,

HashMap

我试过的方式都没有。我尝试使用string.split('〜')但我得到一个错误,因为拆分不是一个函数。

new HashMap<>(Collections.singletonMap("upl", new ArrayList<>(successList)))

3 个答案:

答案 0 :(得分:0)

&#13;
&#13;
var string = "Name1;Email1;ID1~Name2;Email2;ID2";
// Initial split in entries
var splitStrings = string.split('~');
var objects = [];
for(var i = 0; i < splitStrings.length; i++) {
    // split into properties
    var objProps = splitStrings[i].split(';');
    var myObj = {};
    myObj.name = objProps[0];
    myObj.mail = objProps[1];
    myObj.id = objProps[2];
    objects.push(myObj);
}

console.log(objects);
&#13;
&#13;
&#13;

这应该拆分你的字符串并将其放入对象中。然后将这些对象添加到数组中。

如果您想使用JSON并控制向您发送消息的代码,我建议您使用JSON.parse()和JSON.stringify()代替。

这种解决方案需要一个严格的结构,就像你发布的结构一样,没有处理错误。

答案 1 :(得分:0)

需要循环temp array.not userstring。当您推送到fstring数组时,请移除i并将该位置用作数字

 fstring.push({
   'Name': value.split(';')[0],
   'EmailID': value.split(';')[1],
   'ID': value.split(';')[2]
 );

改变你的服务。

.service('ViewService', [function () {
var temp = [];
var fstring = [];
this.SplitUser = function (userstring) {
    debugger;
    temp = userstring.split('~');
    angular.forEach(temp, function (value, key) {
        fstring.push({
            'Name': value.split(';')[0],
            'EmailID': value.split(';')[1],
            'ID': value.split(';')[2]
        });
    })
    console.log(temp);
    console.log(fstring);
    return temp;
}
}])

演示

&#13;
&#13;
angular.module("app",[])
.controller("ctrl",function($scope,ViewService){
   var string="Name1;Email1;ID1~Name2;Email2;ID2";
   ViewService.SplitUser(string)

}).service('ViewService', [function () {
var temp = [];
var fstring = [];
this.SplitUser = function (userstring) {
    debugger;
    temp = userstring.split('~');
    angular.forEach(temp, function (value, key) {
        fstring.push({
            'Name': value.split(';')[0],
            'EmailID': value.split(';')[1],
            'ID': value.split(';')[2]
        });
    })
    console.log(temp);
    console.log(fstring);
    return temp;
}
}])
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
 
</div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

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

app.controller('MainCtrl', function($scope) {
  $scope.name = [];
 var  string="Name1;Email1;ID1~Name2;Email2;ID2"
 var arr = string.split('~');
 angular.forEach(arr, function (value, key) {
   
        $scope.name.push({
            'Name': value.split(';')[0],
            'EmailID': value.split(';')[1],
            'ID': value.split(';')[2]
        });
    })
    console.log($scope.name);
});
<!DOCTYPE html>
<html ng-app="plunker">

  <head>
    <meta charset="utf-8" />
    <title>AngularJS Plunker</title>
    <script>document.write('<base href="' + document.location + '" />');</script>
    <link rel="stylesheet" href="style.css" />
    <script data-require="angular.js@1.4.x" src="https://code.angularjs.org/1.4.12/angular.js" data-semver="1.4.9"></script>
    <script src="app.js"></script>
  </head>

  <body ng-controller="MainCtrl">
    <p>Hello {{name}}!</p>
  </body>

</html>