我正在制作一個瀏覽器擴展,用***. 現在,我有一個巨大的 JS 陣列,其中包含所有褻瀆的詞(2k 個詞)。
我正在使用 for 回圈遍歷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 個元素的陣列實作這個?
uj5u.com熱心網友回復:
您是否考慮過使用 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);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/367557.html
標籤:javascript 数组 for循环 代替
