使用javascript基于第二次出现的分隔符拆分字符串

时间:2013-11-05 05:38:42

标签: javascript jquery string split substring

我有一个动态形成的字符串,如part1.abc.part2.abc.part3.abc,其长度未知

在这个字符串中,我希望根据第二次出现的“。”获取子字符串。这样我就能得到part1.abc part2.abc part3.abc

如果字符串类似 - part1.abc.part2.abc.part3.abc.part4输出必须类似于part1.abc part2.abc part3.abc part4

如何获得这个?

3 个答案:

答案 0 :(得分:3)

这样的事情:

str="part1.abc.part2.abc.part3.abc.part4"
temp=str.split('.');
out=[]
for(i=0; i<temp.length;i=i+2)
out.push(temp.slice(i,i+2).join('.'));
//["part1.abc", "part2.abc", "part3.abc", "part4"]

答案 1 :(得分:2)

正如我的评论中所建议的那样,最简单(也是最快)的方法是使用正则表达式并匹配:

// ['part1.abc', 'part2.abc', 'part3.abc', 'part4']
'part1.abc.part2.abc.part3.abc.part4'.match(/[^.]+(\.[^.]+)?/g);

答案 2 :(得分:1)

简单的功能,允许您指定要连接在一起的项目数和分隔符,您可以使用它们来加入它们。

var concatBy = function(list, delimiter, by) {
    var result = [];
    for (var i = 0; i < list.length; i += by) {
        result.push(list.slice(i, i + by).join(delimiter))
    }
    return result;
}

concatBy('part1.abc.part2.abc.part3.abc'.split('.'), '.', 2) // returns concatBy('part1.abc.part2.abc.part3.abc.part4'.split('.'), '.', 2)
concatBy('part1.abc.part2.abc.part3.abc.part4'.split('.'), '.', 2) // returns ["part1.abc", "part2.abc", "part3.abc", "part4"]