Javascript 使用indexOf()获取两个索引之间的子字符串

Javascript 使用indexOf()获取两个索引之间的子字符串,javascript,indexof,Javascript,Indexof,var myStr=“我喜欢巧克力和草莓,也喜欢这个和那个,再次喜欢在街上散步”; var newStr=myStr.substr(myStr.indexOf('love')、myStr.lastIndexOf('love')); console.log(newStr)您可以使用love:)创建字符串,并查看数组中的第二项: var myStr = "I love chocolate and strawberry, love this and that as well, and again lo

var myStr=“我喜欢巧克力和草莓,也喜欢这个和那个,再次喜欢在街上散步”;
var newStr=myStr.substr(myStr.indexOf('love')、myStr.lastIndexOf('love'));
console.log(newStr)
您可以使用
love
:)创建字符串,并查看数组中的第二项:

var myStr = "I love chocolate and strawberry, love this and that as well, and again love walking along the street";

var newStr = myStr.substr(myStr.indexOf('love'), myStr.lastIndexOf('love'));

///" chocolate and strawberry, "; //this is the output 
将和方法与fromIndex参数一起使用

var myStr=“我喜欢巧克力和草莓,也喜欢这个和那个,再次喜欢在街上散步”;
var str='love',ind=myStr.indexOf(str);
var newStr=myStr.substring(ind+str.length,myStr.indexOf(str,ind+1));

console.log(newStr)我同意上面的答案,但是如果你想知道如何获得第二个“爱”的索引,你可以通过indexOf()中的“startingposition”,所以它会寻找“爱”这个词在起始位置之后。

您遇到的问题是由于您发送到子字符串方法的第二个索引是最后一个单词“love”的开头,而不是结尾。。。如果将单词“love”的长度添加到第二个索引中,代码应该可以正常工作

将拆分包装成一个函数以便于使用

只需在字符串上调用
getTextBetween(splitOnString,middleTextDesired)

splitOnString
是要在其中查找的文本

middleTextDesired
是所需的中间文本数<第一个代码>1
,第二个代码>2,等等

这还不是一个完整的功能,因为没有添加防御检查,但想法很清楚

var myStr=“我喜欢巧克力和草莓,也喜欢这个和那个,再次喜欢在街上散步”;
String.prototype.getTextBetween=函数(splitOn,middleTextDesired=1){
返回此.split(splitOn)[middletextdired];
}
log(myStr.getTextBetween('love',1))
String.indexOf()
支持第二个参数,
来自index
。如果存储第一个
索引的结果,只需重新使用它。
var newStr = myStr.split("love")[1];