当句子javascript/Google Chrome扩展中出现某些单词时,替换整个字符串



我正在开发一个谷歌浏览器扩展程序,其中网页上特朗普这个词所在的每个句子都是不可见的。只用空格替换 trump 这个词是有效的,但我不知道如何删除句子的其余部分。

这是我的代码:

var elements = document.getElementsByTagName('*');
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
for (var j = 0; j < element.childNodes.length; j++) {
var node = element.childNodes[j];
if (node.nodeType === 3) {
var text = node.nodeValue;
var replacedText = text.replace(/trump/gi, '');
if (replacedText !== text) {
element.replaceChild(document.createTextNode(replacedText), node);
}
}
}
}

要解决的问题:

  1. 查找关键字(trump(在文本中的位置
  2. 确定句子是什么
  3. 删除包含关键字的句子

我们可以用JavaScript String indexOf((方法做第一个,该方法将返回关键字在文本中的位置。

第二个会很难(取决于你希望它工作得有多好(。确定一个句子对计算机来说是难题,这就是为什么你的手机会大写"."之后的任何内容。您可以从尝试沿着句子结尾字符(.!?(拆分文本开始。

一旦你确定了第二个,第三个就不那么难了。取关键字前面的字符(例如JavaScript String substring((方法(并使用splits,与关键字后面的文本相同。

最新更新