我想帮忙完成这项任务。 我需要在文本区域中谴责与我的数组中的单词相似的单词。所有工作都很好地处理了谴责部分!它应该涵盖一个谴责词中的每一个字母(汽车应该是***),但不幸的是它覆盖它像一个*。 也许indexOf在这里有用吗?等待答案< 3
看起来像这样: enter image description here
以下是我希望您改进的代码:
<script>
var words = ["meat", "lol"];
document.querySelector('.container p').innerHTML = words.join(" ");
document.getElementById('btnAdd').onclick = function () {
words.push(document.getElementById('newWord').value);
document.querySelector('.container p').innerHTML = words.join(" ");
}
//Replacing
document.getElementById('btnCensura').onclick = function () {
var str = document.getElementById('tArea').value;
for (var i = 0; i < words.length; i++) {
if (str.match(words[i])) {
str = str.replace(words[i], "*");
}
}
document.getElementById('tArea').value = str;
}
</script>
答案 0 :(得分:0)
普通.replace
仅替换第一次出现,如果要替换textarea中所有匹配的文本,请使用正则表达式
document.getElementById('btnCensura').onclick = function() {
var str = document.getElementById('tArea').value;
for(var i = 0; i < words.length; i++) {
var re = new RegExp(words[i], "g");
str = str.replace(re, "*".repeat(words[i].length));
}
document.getElementById('tArea').value = str;
}