【问题标题】:Split string based on second occurrence of delimiter using javascript使用javascript根据第二次出现的分隔符拆分字符串
【发布时间】:2013-11-15 22:43:18
【问题描述】:

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

在这个字符串中,我想根据第二次出现的“。”来获取子字符串。这样我就可以得到part1.abcpart2.abcpart3.abc。

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

如何获得?

【问题讨论】:

标签: javascript jquery string split substring


【解决方案1】:

类似这样的:

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"]

【讨论】:

    【解决方案2】:

    简单的功能,允许您指定要连接在一起的项目数量以及可用于连接它们的分隔符。

    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"]
    

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-01-29
        • 1970-01-01
        • 1970-01-01
        • 2014-03-22
        • 2018-09-29
        • 2014-10-08
        相关资源
        最近更新 更多