我正在尝试关于indexOf
和lastIndexOf
方法的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);
我的问题是,替换后的字符串如何消失?
非常感谢您的投入。
答案 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);