【发布时间】:2020-06-16 08:12:51
【问题描述】:
例如,我有字符串“Hello my name is ...”,现在我想将字符串更改为“Hellel my name is ...”。我该怎么做?我已经写了一个代码,但是每当我想用 2 个新字符更改/替换 1 个字符时,整个“网站”就会永远加载。
这是我的代码:
function f(str) {
let e = document.getElementById("changeValue");
let replaceStr = e.options[e.selectedIndex].text;
const vokale = ['a', 'e', 'i', 'o', 'u'];
for (let i = 0; i < str.length;i++) {
if (vokale.includes(str.toLowerCase()[i])){
if(vokale.includes(str.toLowerCase()[i+1])){
str = str.substr(0, i + 1) + '' + str.substr(i + 2, str.length);
}
if (replaceStr.length == 2) {
str = str.substr(0, i) + replaceStr.charAt(0) + str.substr(i + 1, str.length);
str = str.substr(0, i + 1) + replaceStr.charAt(1) + str.substr(i + 2, str.length);
} else {
str = str.substr(0, i) + replaceStr + str.substr(i + 1, str.length);
}
}
}
changeText(str);
}
str ... 是我要修改的字符串 - e ... 只是一个字符串/字符,我想替换一些东西,就像这里我想用 e 替换所有人声。
提前感谢您的帮助!
【问题讨论】:
-
str.replace 怎么样?
-
你在哪里添加两个新字符?
-
@DontrolAltDel 对我不起作用(我猜),因为我也想将 a 更改为 au,所以我有一个无限循环。
-
如果你向后遍历字符串,无限循环问题就会消失
-
不是真的,因为如果有一个“u”我也遇到了同样的问题,顺便说一句改变了代码
标签: javascript string replace char