用于分割字符串和循环以获取字符的Javascript

时间:2015-10-14 10:42:48

标签: javascript arrays for-loop split

我有一个类似于下面的字符串,它从网格1中循环通过网格后填充到文本字段中。 xxx,2 | yyy,3 | ZZZ,4 | ,5 |

是模型,索引|模型,索引| ....如果没有什么是空白的话。 现在我希望逻辑只获取模型并检查索引值并将模型设置为另一个网格2单元格值。

以下是我目前的代码,它非常冗长:

test() {
    alert(Moment);
    var totalSize = fieldname.getGridSize();
    //var getModel =       fieldname.getValue();
    var getModel = document.getElementById("Desktfieldname").value;


    if (getModel && getModel != '') {

        var res = getModel.split("|");
        alert(res);
        var model1 = res[0];
        var model2 = res[1];
        var model3 = res[2];
        var model4 = res[3];
        var model5 = res[4];

        if (model1 != '') {
            var res1 = model1.split(",");
            alert(res1);
            var modelfinal1 = res1[0];
            var indexfinal1 = res1[1];
        }

        if (model2 != '') {
            var res2 = model2.split(",");
            alert(res2);
            var modelfinal2 = res2[0];
            var indexfinal2 = res2[1];
        }


        if (model3 != '') {
            var res3 = model3.split(",");
            alert(res3);
            var modelfinal3 = res3[0];
            var indexfinal3 = res3[1];
        }

        if (model4 != '') {
            var res4 = model4.split(",")
            var modelfinal4 = res4[0];
            var indexfinal4 = res4[1];
        }

        if (model5 != '') {
            var res5 = model5.split(",")
            var modelfinal5 = res5[0];
            var indexfinal5 = res5[1];

            for (var s = 1; s <= totalSize; s++) {
                var cellValIndex = Index.getCellValue(s);
                alert(cellValIndex);
                alert(modelfinal1);
                if (cellValIndex && cellValIndex != '') {
                    if (cellValIndex == modelfinal1) {
                        expr = 'feildName.setCellValue         (' + s + ",'" + indexfinal1 + "')";
                        eval(expr);
                    }

                }

            }

        }
    }
}

2 个答案:

答案 0 :(得分:0)

问题不明确,不确定你到底想要得到的最终结果

但是,这可能会有所帮助:

您可以将字符串拆分为数组,然后使用索引

访问它
var modelIndexes = string.split('|');

之后你可以访问任何带有数组索引的模块(用于循环或你需要的任何模块)并再次拆分以获得你需要的模块

var modelInstance = modelIndexes[i].split(',');
var index = modelInstance[0]; // contains your model
var model = modelInstance[1]; // contains your index

答案 1 :(得分:0)

我建议对象是你想要完成的更好的模型,但是如果必须用字符串完成,你可以使用RegExp来解析字符串中的匹配项:

&#13;
&#13;
var that = this;
$timeout(function() {
    that.set('content.text', compiled);
}, 100);
&#13;
&#13;
&#13;