javascript - Javascript使用while循环查找和替换函数
问题描述
我有这个简单的功能来查找和替换我的 textarea消息中的文本。用户将能够在文本区域中键入内容,也能够从他们刚刚输入的文本区域中查找和替换单词。目前我正在尝试使用while循环来替换用户键入的文本区域中的多个相同单词。但是每次我运行它时,它似乎都会冻结整个html页面,知道为什么会这样吗?
查找和替换是用户键入他们想要查找和替换的单词的文本框,用户也可以键入多个单词进行替换。
function findText() {
let find = document.getElementById('find').value;
let replace = document.getElementById('replace').value;
let message = document.getElementById('message').value;
var lmao = message.indexOf(find);
while (message.indexOf(find) != -1) {
document.getElementById("message").value = message.replace(find, replace);
}
}
解决方案
将while
循环替换为replaceAll
.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replaceAll
function findText() {
let find = document.getElementById('find').value;
let replace = document.getElementById('replace').value;
let message = document.getElementById('message').value;
var lmao = message.indexOf(find);
document.getElementById("message").value = message.replaceAll(find, replace);
}
<div>Find <input id="find" value="find" /></div>
<div>Replace <input id="replace" value="replace" /></div>
<div>
<textarea id="message" style="height: 100px">you can find and replace every words just by .replaceAll, example: find 1 find 2 find 3</textarea>
</div>
<div>
<button onclick="findText()">Submit</button>
</div>
推荐阅读
- c++ - MiniDumpWriteDump() 进入命名管道,然后 ReadFile()
- google-api - 使用 gspread 或 gspread-formatting 批量检索工作表中所有单元格的“dataValidation”?
- javascript - 无法理解猫鼬虚拟中的“.this”
- java - 如何使用具有泛型和继承的方法?
- javascript - 使用 axios 渲染 ejs 时出现“无法读取数据属性错误”
- flutter - 将 Flutter 更新到 1.20.3-stable 后无法运行项目
- apache-kafka - 无法建立到节点 -1 的连接。经纪人可能不可用。Windows 和 WSL
- spring - Spring Security Roles Hierarchy Expression中的\是什么意思?
- mysql - MySQL - 根据团队成员返回多个用户
- java - 如何每个功能方法只执行一次设置方法/块?