【发布时间】:2017-12-18 14:00:50
【问题描述】:
我想获得一些帮助来完成这项任务。 我需要批评文本区域中与我的数组中的单词相似的单词。除了批评部分,一切都很好!它应该覆盖像(汽车应该是***)这样的谴责词中的每个字母,但不幸的是它像一个*一样覆盖它。 也许 indexOf 在这里有用吗?等待答案
看起来像这样: 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>
【问题讨论】:
-
str = str.replace(words[i], "*".repeat(words[i].length)); -
也不要打扰调用匹配。它实际上降低了效率
-
@4castle 谢谢队友,对我帮助很大
标签: javascript arrays string replace