用子组拆分字符串

时间:2011-04-27 15:55:40

标签: javascript

我有以下javascript字符串变量:

var a = "1870|A00,1871|A01";

我想将上面的字符串分成以下字符串:

var a1 = 1870,1871
var a2 = A00,A01

有关此的任何提示吗?

6 个答案:

答案 0 :(得分:4)

var a = "1870|A00,1871|A01";
var a1 = a.match(/\d+(?=\|)/g);
var a2 = a.match(/\w\d+(?=,|$)/g);

// a1
// 1870,1871
// a2
// A00,A01

答案 1 :(得分:2)

要分割字符串,可以使用Javascript split method。 Split接受您要拆分的分隔符作为参数,在您的情况下是逗号和管道。它返回在分隔符之前和之后找到的对象数组(最终是一个大于分隔符出现次数的数组)。

要动态添加对象以构建a1和a2,请使用push。 Push将对象添加到数组的末尾。

要从两个数组中获取一个字符串,并用逗号分隔每个数组,请使用join。 Join接受一个数组并返回一个字符串,其中包含您的参数将每个条目分开的任何内容。

var a1 = [];
var a2 = [];
var firstGrouping = a.split(",");
var firstGroupingLength = firstGrouping.length;
for(var i = 0; i < firstGroupingLength; i++) {
    var secondGrouping = firstGrouping[i].split("|");
    a1.push(secondGrouping[0]);
    a2.push(secondGrouping[1]);
}
var a1String = a1.join(',');
var a2String = a2.join(',');

要概括上面的代码以允许在管道周围分组更多项目(例如输入字符串var a = "1870|Z26|A00,1871|Z25|A01"),而不是a1和a2考虑动态构造的数组数组。

答案 2 :(得分:1)

var a = "1870|A00,1871|A01";

var b = a.split(',');     // split on the commas
var a1 = [], a2 = [];     // temporary arrays

// foreach of the substrings
for (var i = 0; i < b.length; ++i) {
    var c = b[i].split('|');  // split on the pipe char
    a1.push(c[0]);            // and store the
    a2.push(c[1]);            // two elements
}

a1 = a1.join(',');        // and reconstruct the
a2 = a2.join(',');        // two strings

答案 3 :(得分:0)

下次尝试使用Google,使用.split() - http://www.w3schools.com/jsref/jsref_split.asp方法。将字符串拆分为数组。

    var a="1870|A00,1871|A01";
    var parts = a.split(",");

答案 4 :(得分:0)

var a = "1870|A00,1871|A01"

var splita = a.split(",");

splita[0] = splita[0].split("|");
splita[1] = splita[1].split("|");

var a1 = [splita[0][0], splita[1][0]];
var a2 = [splita[0][1], splita[1][1]];

答案 5 :(得分:0)

使用正则表达式替换可以相当容易地完成。

var a1 = a.replace(/\|A[0-9]+/,"");
var a2 = a.replace(/[0-9]+\|/,"");

我没有尝试过代码,但应该可以使用。