我正在寻找一种方法来找出当前为浏览器游戏 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
- 后跟
?
nếu như màn hình
是第一个参数,或者 whatever + &
如果它是不
- 紧随其后的是
screen=train
请注意,RegEx 之前或之后的内容并不重要,因为我们只是在没有任何边界检查的情况下进行测试,例如 ^
hoặc $
。
详细的最后一部分:(\?|.*\&)screen\=train
- 管道 |
表示 OR - 我们检查或者问号\?
,或者*任意数量的字符后跟一个&符号.*\&
。如果您的 URL 中的参数组织方式不同,这将很有用
如果您查看您提供的 URL,您会发现其中有一些参数,在 game.php
之后。参数列表以第一个参数之前的 ?
开头,之后每个参数与下一个参数用 &
分隔。 ?village=171817&screen=train
。但是,这些参数的顺序无关紧要,因此 màn hình
参数可能是第一个 ?screen=train&village=171817
然后在前面加上一个问题标记而不是符号。所以如果 screen=train
是第一个,那和 game.php?
之间就没有任何东西了。如果它不是第一个,它之前可以有任意数量的参数 .*
后跟一个 & 符号和它本身。
Tôi là một lập trình viên xuất sắc, rất giỏi!