【问题标题】:Greasemonkey: How to remove random url parts?Greasemonkey:如何删除随机 url 部分?
【发布时间】:2020-08-24 16:36:13
【问题描述】:

我需要从...更改这样的图像

https://www.website.com/images/stuff/95/jgfij/public/2019/09/cow.gif https://www.website.com/images/stuff/df3/4gy0/public/2015/03/horse.png https://www.website.com/images/stuff/odpk/f049/public/2020/08/dog.jpg

进入...

https://www.website.com/images/stuff/public/2019/09/cow.gif https://www.website.com/images/stuff/public/2015/03/horse.png https://www.website.com/images/stuff/public/2020/08/dog.jpg

我试过了,但是不行

document.body.innerHTML = document.body.innerHTML.replace('https://www.website.com/images/stuff/*/public/,'https://www.website.com/images/stuff/public/');

我一直在尝试找到可以删除网址特定部分之间的所有内容的东西,但我从来没有运气。

【问题讨论】:

  • 请阅读greasemonkey的标签。它已经过时多年了。
  • 这与您的问题无关,但 Tampermonkey 可能是一个有效的替代品。

标签: javascript greasemonkey tampermonkey greasemonkey-4


【解决方案1】:

更新:

您的示例可能不是您想要的。也许如下:

blahblahblah.replace(new RegExp('https://www.website.com/images/stuff/.*/public/'),
    'https://www.website.com/images/stuff/public/');

您在正则表达式中缺少一个尾引号,并且有 /*,这意味着“零个或多个斜杠”,而您可能想要 .*,“零个或多个任何字符”。

我还发现您必须将模式作为正则表达式而不是字符串传递。请参阅下面的评论。

【讨论】:

  • 感谢您的帮助,但没有奏效。我使用 (.*) 还是 [.*] 有关系吗?
  • 不,抱歉,问题在于 String.replace(),当您将第一个值作为字符串传递时,它会进行文字字符串替换,而不是正则表达式替换。您必须将第一个值作为正则表达式对象传递。等一下,我会更新我的答案。见developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
  • Okie dokie。立即尝试。,
  • 还是不行。当我这样做 document.body.innerHTML = document.body.innerHTML.replace('https://www.website.com/f/styles/84ht879ht478/public/all/', 'https://www.website.com/f/all/'); 时它会起作用,但我必须做一堆
  • 您必须使用 RegExp() 或 /blahblahblah/ 正则表达式文字,而不是字符串作为您的第一个参数。 console.log(document.body.innerHTML) 告诉你什么?
猜你喜欢
  • 2019-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-19
  • 2015-03-18
相关资源
最近更新 更多