javascript - 寻找从字符串中提取未知子字符串的最简单方法。 (术语用斜杠分隔)

标签 javascript string substring

初始字符串:
initString = '/digital/collection/music/bunch/of/other/stuff'

我想要什么:
音乐

  • 具体来说,我想要介于 collection//bunch 之间的任何术语(永远不会包含斜杠)

我将如何做:

if(initString.includes('/digital/collection/')){
    let slicedString = initString.slice(19); //results in 'music/bunch/of/other/stuff'
    let indexOfSlash = slicedString.indexOf('/'); //results, in this case, to 5
    let desiredString = slicedString.slice(0, indexOfSlash); //results in 'music'
}

问题:
我到底如何以更优雅的方式在 javascript 中完成这个任务?

  • 我寻找类似 endIndexOf() 的东西来代替我的硬编码 .slice(19)
    • lastIndexOf() 不是我要找的,因为我希望索引位于子字符串 /digital/collection/ 的第一个实例的末尾
  • 我希望减少行数,但找不到类似 .getStringBetween('beginCutoff, endCutoff')

提前谢谢您!

最佳答案

您的标题显示“index”,但您的示例显示您想要返回一个字符串。事实上,如果您想返回字符串,请尝试以下操作:

if(initString.includes('/digital/collection/')) {
    var components = initString.split('/');
    return components[3]; 
}

关于javascript - 寻找从字符串中提取未知子字符串的最简单方法。 (术语用斜杠分隔),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58564271/

相关文章:

ruby - 无法将 nil 转换为字符串

C语言: Newb translating code from javascript to C,代码包含malloc、strncpy、指针

c# - 带linq的子串?

删除时间戳末尾

java - 1000位的字符串,使用substring方法在没有数组的情况下找到最大的5位

Javascript有条件地调用链式方法

javascript - 如何在谷歌地图中自动设置信息窗口内容

javascript - 使用 jQuery 将完整 html anchor 替换为另一个 html anchor

javascript - 更新全选/取消全选复选框

MySql 子字符串索引,查找和替换字符