我试图使用以下JS代码将单词中的字母替换为空白 " "
:
let letter = document.querySelector("#letter").value.toLowerCase();
var word = "letters";
var i = word.indexOf(letter);
console.log("word[i]: " + word[i]);
while(i > -1) {
console.log(i);
word.replace(word[i], " ");
console.log("word: " + word);
i = word.indexOf(letter);
console.log(i);
}
console.log("word after: " + word);
问题是i
保持2并且不会改变。word.replace(word[i], " ");
似乎没有做好自己的工作。
我想到了这样的循环:
让我们先说t
var i
是2
word.replace(word[i], " ");
将在word[2]
上的角色替换为白色的spaceword
,然后变成le ters
i = word.indexOf(letter);
,然后找到3
word.replace(word[i], " ");
上的下一个t
,将word[]
上的字符替换为一个白色的spaceword
,会变成le ers
i
,因为没有不再使用t
in word
并退出while
循环问题是它不是那样工作的。while
循环无限期运行,i
保持2。
有什么问题吗?
发布于 2020-01-12 03:03:18
您可以使用regex /t/g
。
检查片段:
//let replace = document.querySelector("#letter").value.toLowerCase();
var replace = "t";
var re = new RegExp(replace,"g");
var original_text="letters";
var extracted_text = original_text.replace(re, ' ');
console.log(extracted_text);
https://stackoverflow.com/questions/59703091
复制