首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >循环无限期运行;条件不会改变;.replace()不能按预期工作

循环无限期运行;条件不会改变;.replace()不能按预期工作
EN

Stack Overflow用户
提问于 2020-01-12 10:55:05
回答 1查看 36关注 0票数 0

我试图使用以下JS代码将单词中的字母替换为空白 " "

代码语言:javascript
代码运行次数:0
运行
复制
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]上的角色替换为白色的space
  • word,然后变成le ters
  • i = word.indexOf(letter);,然后找到3
  • word.replace(word[i], " ");上的下一个t,将word[]上的字符替换为一个白色的space
  • word,会变成le ers
  • now i,因为没有不再使用t in word并退出while循环

问题是它不是那样工作的。while循环无限期运行,i保持2。

有什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-12 11:03:18

您可以使用regex /t/g

检查片段:

代码语言:javascript
代码运行次数:0
运行
复制
//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);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59703091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档