我有以下javascript字符串变量:
var a = "1870|A00,1871|A01";
我想将上面的字符串分成以下字符串:
var a1 = 1870,1871
var a2 = A00,A01
有关此的任何提示吗?
答案 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]+\|/,"");
我没有尝试过代码,但应该可以使用。