我需要通过分隔符拆分字符串,使其成为2个数组。
以下是字符串"55,56,*,51,52"
的示例。
我想以[["55","56],["51","52"]]
结束
我在javascript中使用split()而无效 -
我相信我需要一个正则表达式解决方案,我不知道该怎么做。
如果要处理的字符串看起来像这个",*,51,52"
那么它应该返回
[[],["51,"52"]]
如果它看起来像"51,*,"
那么它应该返回[["51"],[]]
并且",*,"
应该返回[[],[]]
-
这可能吗?
感谢。
答案 0 :(得分:2)
您可以通过string.split
方法执行此操作:
var str = "55,56,*,51,52".split('*');
for (var i=0;i<str.length;i++) str[i] = str[i].split(',');
//str now contains [["55", "56", ""], ["", "51", "52"]]
您可以将字符串更改为"55,56*51,52"
,以获得[["55","56],["51","52"]]
的结果。
或者,您也可以稍微长一点的方式:
var str = "55,56,*,51,52".split('*');
for (var i=0;i<str.length;i++) {
str[i] = str[i].split(',');
for (var n=0;n<str[i].length;n++)
!str[i][n] && str[i].splice(n,1);
}
//str now contains [["55","56],["51","52"]]
然后它将使用星号周围的逗号。
答案 1 :(得分:0)
这是一个不使用分割的较短版本:
function twoArrays(str) {
return JSON.parse(("[[" + str + "]]").replace(/,\*,/g, "],["));
}
// Examples:
twoArrays("55,56,*,51,52") // => [[55,56],[51,52]]
twoArrays("55,56,*,") // => [[55,56],[]]
twoArrays(",*,") // => [[],[]]