Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.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_Regex_String_Substring - Fatal编程技术网

Javascript 如何匹配由一个字符分割的多个子字符串?

Javascript 如何匹配由一个字符分割的多个子字符串?,javascript,regex,string,substring,Javascript,Regex,String,Substring,假设我有以下字符串:aaa.bbb.ccc.ddd.eee。我想在每次出现时将此字符串按字符分割,最后一次出现除外。换句话说,我希望我的结果如下: [ "aaa.bbb.ccc.ddd.eee", "bbb.ccc.ddd.eee", "ccc.ddd.eee", "ddd.eee" ] 我只能通过多个显式循环来实现这一点,但如果可能的话,我希望避免这种情况。我不是JavaScript大师,也许有一些函数我不知道,这可能会有所帮助。使最终的解决方案更短、更简单。

假设我有以下字符串:
aaa.bbb.ccc.ddd.eee
。我想在每次出现时将此字符串按
字符分割,最后一次出现除外。换句话说,我希望我的结果如下:

[
    "aaa.bbb.ccc.ddd.eee",
    "bbb.ccc.ddd.eee",
    "ccc.ddd.eee",
    "ddd.eee"
]

我只能通过多个显式循环来实现这一点,但如果可能的话,我希望避免这种情况。我不是JavaScript大师,也许有一些函数我不知道,这可能会有所帮助。使最终的解决方案更短、更简单。

有多种方法可以做到这一点,但这里有一种方法只有一个循环:

function splitAndJoin(val) {
    var retVal = [];
    val = val.split('.');

    while(val.length > 1) {
        retVal.push(val.join('.'));
        val.shift();
    }

    return retVal;
}
用法:

splitAndJoin('aaa.bbb.ccc.ddd.eee')
结果:

[
  "aaa.bbb.ccc.ddd.eee",
  "bbb.ccc.ddd.eee",
  "ccc.ddd.eee",
  "ddd.eee"
]

有多种方法可以实现这一点,但这里有一种方法只有一个循环:

function splitAndJoin(val) {
    var retVal = [];
    val = val.split('.');

    while(val.length > 1) {
        retVal.push(val.join('.'));
        val.shift();
    }

    return retVal;
}
用法:

splitAndJoin('aaa.bbb.ccc.ddd.eee')
结果:

[
  "aaa.bbb.ccc.ddd.eee",
  "bbb.ccc.ddd.eee",
  "ccc.ddd.eee",
  "ddd.eee"
]

有多种方法可以实现这一点,但这里有一种方法只有一个循环:

function splitAndJoin(val) {
    var retVal = [];
    val = val.split('.');

    while(val.length > 1) {
        retVal.push(val.join('.'));
        val.shift();
    }

    return retVal;
}
用法:

splitAndJoin('aaa.bbb.ccc.ddd.eee')
结果:

[
  "aaa.bbb.ccc.ddd.eee",
  "bbb.ccc.ddd.eee",
  "ccc.ddd.eee",
  "ddd.eee"
]

有多种方法可以实现这一点,但这里有一种方法只有一个循环:

function splitAndJoin(val) {
    var retVal = [];
    val = val.split('.');

    while(val.length > 1) {
        retVal.push(val.join('.'));
        val.shift();
    }

    return retVal;
}
用法:

splitAndJoin('aaa.bbb.ccc.ddd.eee')
结果:

[
  "aaa.bbb.ccc.ddd.eee",
  "bbb.ccc.ddd.eee",
  "ccc.ddd.eee",
  "ddd.eee"
]

一个循环就足够了:

var string = "aaa.bbb.ccc.ddd.eee",
    result = [],
    regex = /[^.]*\./g,
    m;
while (m = regex.exec(string))
    result.push(string.slice(m.index));
然而,我认为使用regex完全是过火了,使用标准应该就足够了。通过使用,您甚至可以编写显式循环:

正如@dc5所说,有多种方法可以做到这一点。您可能使用了多个(嵌套)循环,因为您不知道在数组内部执行循环的方法和方法。

单个循环就足够了:

var string = "aaa.bbb.ccc.ddd.eee",
    result = [],
    regex = /[^.]*\./g,
    m;
while (m = regex.exec(string))
    result.push(string.slice(m.index));
然而,我认为使用regex完全是过火了,使用标准应该就足够了。通过使用,您甚至可以编写显式循环:

正如@dc5所说,有多种方法可以做到这一点。您可能使用了多个(嵌套)循环,因为您不知道在数组内部执行循环的方法和方法。

单个循环就足够了:

var string = "aaa.bbb.ccc.ddd.eee",
    result = [],
    regex = /[^.]*\./g,
    m;
while (m = regex.exec(string))
    result.push(string.slice(m.index));
然而,我认为使用regex完全是过火了,使用标准应该就足够了。通过使用,您甚至可以编写显式循环:

正如@dc5所说,有多种方法可以做到这一点。您可能使用了多个(嵌套)循环,因为您不知道在数组内部执行循环的方法和方法。

单个循环就足够了:

var string = "aaa.bbb.ccc.ddd.eee",
    result = [],
    regex = /[^.]*\./g,
    m;
while (m = regex.exec(string))
    result.push(string.slice(m.index));
然而,我认为使用regex完全是过火了,使用标准应该就足够了。通过使用,您甚至可以编写显式循环:


正如@dc5所说,有多种方法可以做到这一点。您可能使用了多个(嵌套)循环,因为您不知道在数组内部执行循环的方法和方法。

我想不出一种内置的方法来执行此操作,我认为您必须编写一个循环。如果你不喜欢写循环,作为一个程序员,你不会走得很远,这是一项日常活动。真的吗?我甚至用粗体写了
multiple
这个词……我并没有注意到这个限定符,但多重循环和嵌套循环并不少见。虽然这可能不需要,但我想不出一个内置的方法来实现,我想你必须写一个循环。如果你不喜欢写循环,作为一个程序员,你不会走得很远,这是一项日常活动。真的吗?我甚至用粗体写了
multiple
这个词……我并没有注意到这个限定符,但多重循环和嵌套循环并不少见。虽然这可能不需要,但我想不出一个内置的方法来实现,我想你必须写一个循环。如果你不喜欢写循环,作为一个程序员,你不会走得很远,这是一项日常活动。真的吗?我甚至用粗体写了
multiple
这个词……我并没有注意到这个限定符,但多重循环和嵌套循环并不少见。虽然这可能不需要,但我想不出一个内置的方法来实现,我想你必须写一个循环。如果你不喜欢写循环,作为一个程序员,你不会走得很远,这是一项日常活动。真的吗?我甚至用粗体写了
multiple
这个词……我并没有注意到这个限定符,但多重循环和嵌套循环并不少见。虽然这可能不需要。我一直在寻找的解决方案。我实际上有这样的东西,但我在另一个里面使用了一个循环,这感觉非常愚蠢,但我无法修复它。我想是漫长的工作日。谢谢。我一直在寻找的解决方案。我实际上有这样的东西,但我在另一个里面使用了一个循环,这感觉非常愚蠢,但我无法修复它。我想是漫长的工作日。谢谢。我一直在寻找的解决方案。我实际上有这样的东西,但我在另一个里面使用了一个循环,这感觉非常愚蠢,但我无法修复它。我想是漫长的工作日。谢谢。我一直在寻找的解决方案。我实际上有这样的东西,但我在另一个里面使用了一个循环,这感觉非常愚蠢,但我无法修复它。我想是漫长的工作日。谢谢