繁体   English   中英

基于分隔符javascript正则表达式拆分字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM