我正在尝试一本关于JavaScript关于indexOf和lastIndexOf方法的入门书。它告诉我把“第二次世界大战”变成“第二次世界大战”。我想写
在历史教科书中,第二次世界大战是第一次世界大战之后。
但输出是
在历史教科书中第二次世界大战
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);
我的问题是,替换后的字符串是如何保持不消失的?
非常感谢您的投入。
发布于 2018-09-02 13:18:51
如果您想让它普遍可用,我建议您除了更正错误之外,还应该像这样修改代码片段:
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);
}
console.log(text);
这将从实际字符串中获取长度(因此可以搜索任意字符串),还可以在要替换的术语之后正确分割。
发布于 2018-09-02 13:17:01
试试下面的代码:
text = text.slice(0, firstChar) + "the Second World War" + text.slice(firstChar+12,text.length);https://stackoverflow.com/questions/52137321
复制相似问题