Javascript正则表达式查找字符串并从整个字符串中提取它

Can*_*Can 1 javascript regex string match

我有一个 Javascript 字符串数组,其中包含如下网址:

http://www.example.com.tr/?first=DSPN47ZTE1BGMR&second=NECEFT8RYD
http://www.example.com.tr/?first=RTR22414242144&second=YUUSADASFF
http://www.example.com.tr/?first=KOSDFASEWQESAS&second=VERERQWWFA
http://www.example.com.tr/?first=POLUJYUSD41234&second=13F241DASD
http://www.example.com.tr/?first=54SADFD14242RD&second=TYY42412DD
Run Code Online (Sandbox Code Playgroud)

我想从这些 url 中提取“第一个”查询参数值。

我的意思是我需要值 DSPN47ZTE1BGMR、RTR22414242144、KOSDFASEWQESAS、POLUJYUSD41234、54SADFD14242RD

因为我不擅长使用正则表达式,所以我找不到从数组中提取这些值的方法。任何帮助将不胜感激

joh*_*667 5

为什么不直接从字符串中创建一个 URL 对象并本地提取参数,而不是使用正则表达式呢?

let url = new URL("http://www.example.com.tr/?first=54SADFD14242RD&second=TYY42412DD");
console.log(url.searchParams.get("first")); // -> "54SADFD14242RD"
Run Code Online (Sandbox Code Playgroud)

如果您不知道第一个参数的名称,您仍然可以使用 URL 构造函数手动搜索查询字符串。

let url = new URL("http://www.example.com.tr/?first=54SADFD14242RD&second=TYY42412DD");
console.log(url.search.match(/\?([^&$]+)/)[1]); // -> "54SADFD14242RD"
Run Code Online (Sandbox Code Playgroud)

搜索的索引表示参数的位置(索引零是整个匹配的字符串)。请注意,如果没有匹配.match则返回null,因此如果 URL 中没有参数,上面的代码将引发错误。