我有一个字符串如下:
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";
答案 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'