翻译这个JavaScript Gibberish好吗?

Jee*_*eak 1 javascript regex pattern-matching

我正在尝试修改和更新旧的Greasemonkey脚本,目的是自动为所有Amazon链接添加联盟ID.谈到JavaScript,我是一个新手,但我通常很擅长修改任何语言的现有脚本.这里只有一条线,我无法绕过头.

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

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

jma*_*777 9

好吧,你问过它:)

启动正则表达式:

/

开始组操作:

(

搜索文本"obidos",后跟任何单个字符

奥比多斯.

打开另一个组运营商:

(

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

ASIN.{12}

另一组操作:

(

后跟0个或更多不是斜杠的字符:

[^\/]*

搜索"="字符或编码为"="的网址的群组操作(%3D):

(= |%3D)

后跟0个或更多不是斜杠的字符:

[^\/]*

接下来是斜线(并关闭当前组),可以重复0次或更多次:

\ /)*

如果找到上一个组或者条形右侧的所有内容都匹配,则允许模式匹配:

|

匹配文本"重定向",后跟0个或更多不是斜杠的聊天:

重定向[^\/]*

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

(标签=)?

关闭我们目前仍处于的两个小组操作:

))

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

[^\/&] +

关闭正则表达式:

/