【问题标题】:Translate this JavaScript Gibberish please? [closed]请翻译这个 JavaScript 乱码? [关闭]
【发布时间】:2012-05-20 20:24:21
【问题描述】:

我正在尝试修改和更新旧的 Greasemonkey 脚本,目的是自动将会员 ID 添加到所有亚马逊链接。当谈到 JavaScript 时,我是个新手,但我通常很擅长修改任何语言的现有脚本。这里只有一条线,我无法绕开。

我开始的脚本已经过时了,所以我不知道是语法有问题还是链接格式改变了。有人可以帮我理解这条线在做什么,以便我可以对其进行更改吗?

const affiliateLink = /(obidos.(ASIN.{12}([^\/]*(=|%3D)[^\/]*\/)*|redirect[^\/]*.(tag=)?))[^\/&]+/i;

【问题讨论】:

标签: javascript regex pattern-matching


【解决方案1】:

好的,你要求的:)

启动正则表达式:

/

开始分组操作:

(

搜索文本“obidos”,后跟任意单个字符

奥比多斯。

打开另一个组运算符:

(

搜索文本“ASIN”,后跟任意 12 个字符

ASIN。{12}

另一组操作:

(

后跟 0 个或多个非斜线字符:

[^\/]*

搜索 '=' 字符或 url 编码的 '=' (%3D) 的组操作:

(=|%3D)

后跟 0 个或多个非斜线字符:

[^\/]*

后跟斜线(并关闭当前组),可以重复 0 次或多次:

\/)*

如果找到前一个组或匹配栏右侧的所有内容,则允许模式匹配:

|

匹配文本“redirect”后跟 0 个或多个非斜杠的字符:

重定向[^\/]*

匹配任何单个字符,后跟可选的文本“tag=":

.(tag=)?

关闭我们目前仍在其中的两个组操作:

))

后跟一个或多个不是斜杠或 & 的字符:

[^\/&]+

关闭正则表达式:

/

【讨论】:

  • 太棒了!谢谢!这正是我所需要的!
  • 不得不为努力+1
  • 嘿,谢谢。这有点荒谬,但我出于某种原因感到有动力......
【解决方案2】:

下载 expresso 的副本,它是一个很好的实用程序,对所有这些东西都派上用场。然后只需将正则表达式放入其中(起始斜线和结束斜线之间的所有内容)。

我会描述它与 e.c.t 匹配的字符串。但它相当复杂,因为它有很多组件。你自己看它更容易。 expresso 为每个模式提供了更英文的解释

【讨论】:

  • 谢谢!我去看看!
猜你喜欢
  • 1970-01-01
  • 2013-12-23
  • 2022-01-18
  • 2017-05-26
  • 1970-01-01
  • 2017-11-07
  • 2022-06-14
  • 2023-01-24
  • 1970-01-01
相关资源
最近更新 更多