[英]split string based on delimiter javascript regex
我需要用分隔符拆分一个字符串,使它成为2个数组。 这是字符串"55,56,*,51,52"
的示例。
我想最终得到[["55","56],["51","52"]]
我在javascript中使用split()无法使用 - 我相信我需要一个正则表达式解决方案,我这样做不知道该怎么做。
如果要处理的字符串看起来像这样",*,51,52"
它应该返回[[],["51,"52"]]
如果它看起来像"51,*,"
它应该返回[["51"],[]]
和",*,"
应该返回[[],[]]
-
这可能吗?
谢谢。
您可以通过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"]]
然后它将使用星号周围的逗号。
这是一个不使用拆分的较短版本:
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(",*,") // => [[],[]]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.