结合indexOf和slice的简单JavaScript代码初学者

时间:2018-09-02 13:04:39

标签: javascript algorithm

我正在尝试关于indexOflastIndexOf方法的JavaScript新书。它告诉我把“第二次世界大战”变成“第二次世界大战”。我正在尝试写

  历史教科书中的

第二次世界大战是第一次世界大战之后

但输出是

  

第二次世界大战的历史教科书

var text = "in history textbook World War II is after World War I"

var firstChar = text.indexOf("World War II");
if (firstChar !== -1) {
    text = text.slice(0, firstChar) + "the Second World War" + text.slice(firstChar, 12);
}
alert(text);

我的问题是,替换后的字符串如何消失?

非常感谢您的投入。

2 个答案:

答案 0 :(得分:2)

如果您想使其普遍使用,除纠正错误外,建议您像这样更改代码段:

var text = "in history textbook World War II is after World War I"

var searchTerm = 'World War II';
var firstChar = text.indexOf(searchTerm);
var cutLength = searchTerm.length;
if (firstChar !== -1) {
  text = text.slice(0, firstChar) + "the Second World War" + text.slice(firstChar + cutLength);
  }
alert(text);

这样可以获取实际字符串的长度(因此可以搜索任意字符串),并且可以在要替换的术语之后正确切分。

答案 1 :(得分:0)

尝试以下代码:

text = text.slice(0, firstChar) + "the Second World War" + text.slice(firstChar+12,text.length);