删除特定分隔符后面的字符串的最后部分
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了删除特定分隔符后面的字符串的最后部分相关的知识,希望对你有一定的参考价值。
我有看起来像这样的字符串
aa-bbb-cc-d-ff-eee-gg
aa-bb-ccc-d
aaa-bbbb
它们由破折号-
分隔。
现在,我想修剪此类字符串的最后一部分,并提出类似的内容
- 从
aa-bbb-cc-d-ff-eee-gg
到aa-bbb-cc-d
//删除了3个部分 - 从
aa-bb-ccc-d
到aa-bb
//已删除2个部分 - 从
aaa-bbbb
到aaa
//删除了1个部分
依此类推。还定义了要删除的部分数量。
[我知道我可以通过拆分并像疯子一样将它们串联来遍历这些字符串的长度。
function splitParts(str, parts){
let len = str.split('-').length;
let output = "";
for(let i = 0; i < len - parts; i++){
output += !i ? str.split('-')[i] : "-" + str.split('-')[i];
}
return output;
}
console.log(splitParts("aa-bb-ccc-dd-eee", 1))
但是我发现这很痛苦,而且很业余。还有其他更好的方法吗?最好是一个与IE11配合使用的衬管。但是其他方法不仅可以破解各个部分,也可以使用。
答案
[一旦有了字母字符数组,您可以slice
数组的所需部分(删除不需要的部分,然后按-
s进行连接:
const str = "aa-b-ccc-gg-dddd-e";
const arr = str.split('-');
const parts = 1;
const output = arr
.slice(0, arr.length - parts)
.join('-');
console.log(output)
另一答案
尝试一下
var abc='sad-ioioiio-sdsd';
var cd=abc.split('-');
cd.splice(-1,1);
console.log(cd.join('-'));
另一答案
仅是另一种解决方案:
function splitParts(str, parts) {
return str
.split('-')
.slice(0, str.split('-').length - parts)
.join('-');
}
以上是关于删除特定分隔符后面的字符串的最后部分的主要内容,如果未能解决你的问题,请参考以下文章
node模块之path——path.join和path.resolve的区别