JavaScript如何从带::分隔符的分段字符串中提取各段最后字段
问题分析
你现有代码的问题在于直接对完整字符串执行::分割操作,两段用空格分隔的目标单元没有被分开处理,所以只能拿到全局最后一个::后的sample3字段。
实现方案
正确的处理逻辑是先拆分出两个独立的单元,再分别提取每个单元的最后一段,示例代码如下:
var the_string = "Testing::testing2::testing3 Sample::sample2::sample3"; // 第一步:按空格拆分得到两个独立的待处理片段 var segments = the_string.split(' '); // 第二步:遍历每个片段,按::拆分后取最后一段,组成结果数组 var resultArr = segments.map(function(seg) { return seg.split('::').slice(-1)[0]; }); // 第三步:把结果数组用空格拼接成目标字符串 var parts = resultArr.join(' '); document.getElementById('tagslast').innerHTML = parts;
如果需要更简洁的ES6+写法,也可以合并为链式调用:
var the_string = "Testing::testing2::testing3 Sample::sample2::sample3"; var parts = the_string.split(' ').map(seg => seg.split('::').at(-1)).join(' '); document.getElementById('tagslast').innerHTML = parts;
步骤说明
- 先用
split(' ')把原始字符串拆分为["Testing::testing2::testing3", "Sample::sample2::sample3"]两个独立片段 - 对每个片段单独执行
split('::')拆分,用slice(-1)[0]或者数组的at(-1)方法取拆分后的最后一个元素 - 最后把得到的
["testing3", "sample3"]用join(' ')拼接为目标字符串"testing3 sample3"
内容的提问来源于stack exchange,提问作者rumDMC
相关产品推荐
相关产品推荐

