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

时间:2016-11-04 17:47:04

标签: javascript indexof

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 



 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'));

console.log(newStr);




如何在第一个单词' love'之间获取文字。和第二个词"爱"应该是"巧克力和草莓,"?

5 个答案:

答案 0 :(得分:1)

您可以使用love :) split字符串并查看数组中的第二项:

var newStr = myStr.split("love")[1];

答案 1 :(得分:1)

使用String#substringString#indexOf方法与fromIndex参数。

var myStr = "I love chocolate and strawberry, love this and that as well, and again love walking along the street";
var str='love', ind = myStr.indexOf(str);
var newStr = myStr.substring(ind + str.length , myStr.indexOf(str,ind + 1));

console.log(newStr);

答案 2 :(得分:0)

我同意上面的回答,但是如果你想知道如何获得第二个“Love”的索引,你可以在indexOf()中传递“startingPostion”,所以它会在启动后查找单词“Love”位置。

答案 3 :(得分:0)

您遇到的问题是由于您要发送到子字符串方法的第二个索引是最后一个单词“爱情”的开头而引起的。而不是结束......如果你要加上“爱”这个词的长度。到第二个索引,你的代码应该可以正常工作。

答案 4 :(得分:0)

将分割包装成一个易于使用的功能。

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

splitOnString是您要查看的文字。

middleTextDesired是您想要的中间文字数。第1个1,第2个2,等等......

这不是一个完成的功能,因为没有添加防御性检查,但这个想法很明确。

var myStr = "I love chocolate and strawberry, love this and that as well, and again love walking along the street";
    
String.prototype.getTextBetween = function(splitOn, middleTextDesired = 1) {
  return this.split(splitOn)[middleTextDesired];
}

console.log(myStr.getTextBetween('love', 1));