javascript - 请翻译这段 JavaScript 乱码?

标签 javascript regex pattern-matching

<分区>

我正在尝试修改和更新一个旧的 Greasemonkey 脚本,目标是自动将附属 ID 添加到所有亚马逊链接。我是 JavaScript 的新手,但我通常很擅长修改任何语言的现有脚本。这里只有一行我无法理解。

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

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

最佳答案

好吧,你自找的:)

启动正则表达式:

/

开始群操作:

(

搜索后跟任何单个字符的文本“obidos”

obidos.

打开另一个组操作符:

(

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

ASIN.{12}

另一个组操作:

(

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

[^\/]*

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

(=|%3D)

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

[^\/]*

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

\/)*

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

|

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

redirect[^\/]*

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

.(tag=)?

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

))

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

[^\/&]+

关闭正则表达式:

/

关于javascript - 请翻译这段 JavaScript 乱码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10621334/

相关文章:

javascript - 多个 where with $or sequelize

Javascript 将值输入到文本框而不是 Python 中的 sendKeys()

sql - 如何使用 SQL 识别或识别数据中的模式

c# - 在 C# 中实现模式匹配

javascript - 从用户输入中识别名称

Javascript - 如何获取没有 id 的元素的内容

javascript - ASP.NET MVC 2 - 何时使用模板与何时使用局部 View

javascript - 正则表达式替换失败,我不明白原因?

Java正则表达式匹配 "string"

c# - RegEx 帮助 - 从 JavaScript 转换为 C#