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

Jam*_*s B 2 javascript string substring

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

我想要的是:
music

  • 具体来说,我希望介于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'
}
Run Code Online (Sandbox Code Playgroud)

问题:
如何通过javascript更好地完成此操作?

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

先感谢您!

Ric*_*ick 5

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

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