使用子字符串直到javascript中的最后一个字符替换

时间:2016-05-31 07:36:48

标签: javascript jquery

我有一个字符串如下:

var mainstring = "Hello thereworld";
var substring = "there";
在电源管中,最后一部分在""

之后一直在变化。
var mainstring = "Hello theresometext1";

我有一个任务,我必须用任务变量替换世界,如果"那么"存在于mainstring中

var task="new"

最终输出应为:

var mainstring = "Hello therenew";

This is what my expected output is:

if(mainstring.IndexOf(substring)!=-1)
{
 mainstring.replace(substring,substring+task);
}

但我得到的输出为:

var mainstring = "Hello thereworldnew";

1 个答案:

答案 0 :(得分:1)

请注意,replace会返回修改后的字符串:MDN

因此,您必须再次将replace函数的结果分配给mainstring

你说:“我必须用任务代替世界”,但你的代码中的哪个地方取代了世界? string.replace(search, replaceWith)

所以最终看起来应该是这样的:

// "Hello thereworld".replace('world', 'new');
mainstring = mainstring.replace('world', 'new');

演示:https://jsfiddle.net/q6r899bx/2/

现在您只能搜索和替换world,但正如您所说,there之后的部分是可变的。所以我最好的猜测是用there替换一个新单词之后的所有内容。

您仍然可以使用indexOf

var index = mainstring.indexOf(substring);

// begin at first character, untill the start+length of substring
mainstring = mainstring.substr(0, index + substring.length);

// now: mainstring = 'Hello there'

mainstring += task;

// now: mainstring = 'Hello therenew'

https://jsfiddle.net/q6r899bx/4/