ReplaceAll在JavaScript为环太慢,寻找一种替代办法

0

的问题

我正在浏览器的扩展,将取代所有亵渎的话,在一个网站 ***. 现在,我有一个巨大的JS阵列所有亵渎的话(2k+话)。
我使用一个循环循环的每个字 profaneWords 阵列和替换任何实例的匹配的词 ***:

    for (let i = 0; i < profaneWords.length; i++) {
      let element = profaneWords[i];
      document.body.innerHTML = document.body.innerHTML.replaceAll(
        element,
        "***"
      );
    }

与此,它需要大约5分钟为我浏览检索和更换的所有情况的所有亵渎的话,在一个网站, ***. 但是,在此之前,这样做是映射的话,没有更改的网站。 因此,对于5分钟,它看起来像什么也没有发生。

我测试了这种方法的另一个阵列,要小得多(10话)以及更换几乎是即时的。

是否有更好的办法我可以去约执行该为我的阵超过2000年的元素呢?

arrays for-loop javascript replace
2021-11-24 06:34:46
1

最好的答案

1

你有没有考虑使用RegExp?

const str = 'Waiting on ass, asset , and tit titillation, ass.';
const profaneWords = ['ass', 'tit'];


const regex = new RegExp('\\b'+profaneWords.join('\\b|\\b')+'\\b', 'g');
var newstr =  str.replace(regex, '***');
console.log(newstr);

2021-11-24 08:26:43

现在只能祈祷的网站不能使用任何东西被认为是"亵渎的词语"在其标记。 类、标识、文件的名字,甚至实际代码可以的所有受害者,以此替换和摧毁一个场所工作的过程中
VLAZ

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................