初始字符串:
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/