Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript根据第二次出现的分隔符拆分字符串_Javascript_Jquery_String_Split_Substring - Fatal编程技术网

使用javascript根据第二次出现的分隔符拆分字符串

使用javascript根据第二次出现的分隔符拆分字符串,javascript,jquery,string,split,substring,Javascript,Jquery,String,Split,Substring,我有一个动态形成的字符串,如-part1.abc.part2.abc.part3.abc,其长度未知 在这个字符串中,我想根据第二次出现的“.”来获取子字符串,这样我就可以获取和part1.abcpart2.abcpart3.abc 如果字符串类似于-part1.abc.part2.abc.part3.abc.part4则输出必须类似于part1.abcpart2.abcpart3.abcpart4 如何获取此信息?类似这样的信息: str="part1.abc.part2.abc.part3.

我有一个动态形成的字符串,如-
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

如何获取此信息?

类似这样的信息:

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"]
str=“part1.abc.part2.abc.part3.abc.part4”
temp=str.split('.');
out=[]
对于(i=0;i类似的内容:

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"]
str=“part1.abc.part2.abc.part3.abc.part4”
temp=str.split('.');
out=[]

对于(i=0;i简单函数,该函数允许您指定要连接在一起的项的数量以及可用于连接它们的分隔符

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"]
var concatBy=函数(列表,分隔符,按){
var结果=[];
对于(变量i=0;i
一个简单的函数,允许您指定要连接在一起的项目的数量以及可用于连接项目的分隔符

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"]
var concatBy=函数(列表,分隔符,按){
var结果=[];
对于(变量i=0;i
正如我在评论中所建议的,最简单(也是最快)的方法是使用正则表达式并匹配:

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

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

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

即使是简单的拆分,然后分组处理也可以。即使是简单拆分,然后分组处理也可以。