如何编写正则表达式以从URL获取参数

时间:2018-12-11 03:50:40

标签: javascript regex

我需要有关正则表达式的帮助,才能从此url仅获取代码参数:

URL: code=4%2FsAB_thYuaw3b12R0eLklKlc-qcvNg6f8E8pgvu_02MTTJE0NOcyvXkrTQrB3QK8209wSbIpLDEBrk8vUGYKQ41I&scope=https:.....

我的代码:

getParameterByName(name) {
    var url = window.location.href;
    name = name.replace(/[\[\]]/g, '\\$&');
    var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$|)'),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, ' '));
}

这段代码返回`

4/sAB_thYuaw3b12R0eLklKlc-qcvNg6f8E8pgvu_02MTTJE0NOcyvXkrTQrB3QK8209wSbIpLDEBrk8vUGYKQ41I

在这种情况下,我需要将第一个也是唯一的反斜杠用作%符号。

我无法正常工作。

提前感谢!

3 个答案:

答案 0 :(得分:1)

对我有用!

SharedPreferences

答案 1 :(得分:0)

未经测试的JavaScript正则表达式:

var myRe = /=(.*)&/igm
var url = 'code=4%2FsAB_thYuaw3b12R0eLklKlc-qcvNg6f8E8pgvu_02MTTJE0NOcyvXkrTQrB3QK8209wSbIpLDEBrk8vUGYKQ41I&scope=https:';
var code = myRe.exec(url);

答案 2 :(得分:0)

使用\bcode=([^&]+)。确保使用单词边界'code ='捕获代码查询,然后捕获所有字符,直到达到&或末尾为止。

此处测试正则表达式:https://regex101.com/r/eSnB4S/1