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
这个词……我并没有注意到这个限定符,但多重循环和嵌套循环并不少见。虽然这可能不需要。我一直在寻找的解决方案。我实际上有这样的东西,但我在另一个里面使用了一个循环,这感觉非常愚蠢,但我无法修复它。我想是漫长的工作日。谢谢。我一直在寻找的解决方案。我实际上有这样的东西,但我在另一个里面使用了一个循环,这感觉非常愚蠢,但我无法修复它。我想是漫长的工作日。谢谢。我一直在寻找的解决方案。我实际上有这样的东西,但我在另一个里面使用了一个循环,这感觉非常愚蠢,但我无法修复它。我想是漫长的工作日。谢谢。我一直在寻找的解决方案。我实际上有这样的东西,但我在另一个里面使用了一个循环,这感觉非常愚蠢,但我无法修复它。我想是漫长的工作日。谢谢