gpt4 book ai didi

JavaScript 判断 url 标签是否匹配

转载 作者:行者123 更新时间:2023-11-30 15:41:28 28 4
gpt4 key购买 nike

我正在寻找一种方法来找出当前为浏览器游戏 TribalWars 编写的脚本打开的页面。 URL 的设置非常相似,对于知道自己在做什么的人来说这应该很容易(我显然不知道)。

URL 如下所示:

https://nlp2.tribalwars.nl/game.php?village=171817&screen=train

每个村庄的村庄 ID 都不同 (duuh),所以这部分应该是某种通配符,但最后的“火车”才是我感兴趣的。这意味着用户正在查看我希望我的脚本修改的页面。

现在我已经编写/找到了以下代码:

/^\u0026.+$/ //To find the &, but it doesn't work because there is stuff in front of the &

/^https:\/\/((nl|zz|en).*\.tribalwars\.(nl|net)\/(game.php).*)/
//This piece works correctly (stole it from another script), but this will trigger at every page.

简而言之:我需要一个正则表达式来确定用户是否正在查看来自正确域的页面(如上面的部分)并确定标签“train”是否正确。

谢谢:)

最佳答案

var str = 'https://nlp2.tribalwars.nl/game.php?village=171817&screen=train',
re = /(nl|zz|en).*\.tribalwars\.(nl|net)\/game\.php(\?|.*\&)screen\=train/;

if (re.test(str)) alert('String matches');

基本上这是做什么的:

  • 检查前缀,nl、zz 或 en(根据您提供的)
  • 之后是什么
  • 后接域名tribalwars
  • 后跟其 TLD(nl 或 net)
  • 后面是你感兴趣的页面/game.php
  • 后跟 ? 如果 screen 是第一个参数,或者 whatever + & 如果它是不
  • 紧随其后的是 screen=train

请注意,RegEx 之前或之后的内容并不重要,因为我们只是在没有任何边界检查的情况下进行测试,例如 ^$

详细的最后一部分:(\?|.*\&)screen\=train - 管道 | 表示 OR - 我们检查或者问号\?,或者*任意数量的字符后跟一个&符号.*\&。如果您的 URL 中的参数组织方式不同,这将很有用

如果您查看您提供的 URL,您会发现其中有一些参数,在 game.php 之后。参数列表以第一个参数之前的 ? 开头,之后每个参数与下一个参数用 & 分隔。 ?village=171817&screen=train。但是,这些参数的顺序无关紧要,因此 screen 参数可能是第一个 ?screen=train&village=171817 然后在前面加上一个问题标记而不是符号。所以如果 screen=train 是第一个,那和 game.php? 之间就没有任何东西了。如果它不是第一个,它之前可以有任意数量的参数 .* 后跟一个 & 符号和它本身。

关于JavaScript 判断 url 标签是否匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40740474/

28 4 0