如何匹配URL中的特定参数?

时间:2017-03-27 12:15:18

标签: javascript regex

我有一个字符串(这是href属性的值),如下所示:

var url = '/myweb/search?s=islamic_sources&q=test';

有时候看起来像这样:

url = '/myweb/search?q=test';
url = '/myweb/search?q=test&g=sth';

Here

^[^?]+.*?&?q=([^$|&]+)

是我到目前为止所尝试的内容,我需要在这三行中匹配test。但遗憾的是$似乎并不代表我的模式中的行尾。我该如何解决?

2 个答案:

答案 0 :(得分:0)

您可以简单地使用:

url.match(/q=([^&]*)/)

这将返回一个数组。如果不为空,test将位于索引1。

var url1 = '/myweb/search?s=islamic_sources&q=test';
var url2 = '/myweb/search?q=test';
var url3 = '/myweb/search?q=test&g=sth';

console.log(url1.match(/q=([^&]*)/)[1]);
console.log(url2.match(/q=([^&]*)/)[1]);
console.log(url3.match(/q=([^&]*)/)[1]);

答案 1 :(得分:0)

正则表达式为Double并在TypeToken中执行,然后进行第一场比赛,将其拆分为/q=[^&]+/,然后进行第二部分。

我在下面创建了它。

url