gpt4 book ai didi

javascript - 如何用javascript替换word?

转载 作者:行者123 更新时间:2023-11-29 10:53:01 25 4
gpt4 key购买 nike

在我加入的一些论坛中,他们只是将某些链接替换为垃圾邮件或已删除。示例:www.rapidshare.com/download/123 将自动转到 www.spam.com/download/123 或单词 MONEY 将更改为 BOSS。

这真的让我很恼火,因为如果我想下载,我必须手动重命名。是否有任何 Javascript 可以解决这个问题,将 www.spam.com 替换回 www.rapidshare.com?我的意思是在客户端。

谢谢

最佳答案

如果这些 URL 在 href 属性中...

var replaceHrefAttributes = function (element, search, replace) {
var nodes = element.getElementsByTagName('a');

for (var i = 0, length = nodes.length; i < length; i++) {

var node = nodes[i];

if (node.href == undefined) {
continue;
}

node.href = node.href.replace(new RegExp(search, 'g'), replace);
}

}

您的用法可能类似于...

replaceHrefAttributes(document.body, 'www.spam.com', 'www.rapidshare.com');

如果这些 URL 是内联文本...

您可以遍历所有文本节点,使用 replace() 将任何字符串替换为另一个字符串。

这是我为此编写的通用递归函数...

var replaceText = function replaceText(element, search, replace) {
var nodes = element.childNodes;

for (var i = 0, length = nodes.length; i < length; i++) {

var node = nodes[i];

if (node.childNodes.length) {
replaceText(node, search, replace);
continue;
}

if (node.nodeType != 3) {
continue;
}

node.data = node.data.replace(new RegExp(search, 'g'), replace);
}

}

您的用法可能类似于...

replaceText(document.body, 'www.spam.com', 'www.rapidshare.com');

如果您对代码的工作原理感到好奇,这里有一个简短的解释......

  1. 获取元素的所有子节点。这将获取文本节点和元素。
  2. 遍历所有这些。
  3. 如果该节点有自己的子节点,则以element 作为循环中的element 再次调用该函数。 continue 因为我们不能修改它,因为它不是文本节点。
  4. 如果此节点的 nodeType 属性不是 3(即文本节点),则 continue 同样我们无法修改任何文本.
  5. 我们确信这是一个文本节点,所以替换文本。

您可以通过将 search 直接传递给它来使该函数更加灵活,允许它使用字符串或正则表达式搜索文本。

关于javascript - 如何用javascript替换word?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6515049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com