Как написать регулярное выражение для получения параметра от URL - PullRequest
0 голосов
/ 11 декабря 2018

Мне нужна помощь с регулярным выражением, чтобы получить только параметр кода из этого 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 голосов
/ 11 декабря 2018

у меня работает !!!

function getUrlParameterByName(name) {
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
    results = regex.exec(location.search);
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
0 голосов
/ 11 декабря 2018

Используйте \bcode=([^&]+).Обязательно захватите кодовый запрос, используя границу слова 'code =', затем захватывайте любые символы, пока он не достигнет & или конца.

здесь тестовое регулярное выражение: https://regex101.com/r/eSnB4S/1

0 голосов
/ 11 декабря 2018

Не проверено регулярное выражение JavaScript:

var myRe = /=(.*)&/igm
var url = 'code=4%2FsAB_thYuaw3b12R0eLklKlc-qcvNg6f8E8pgvu_02MTTJE0NOcyvXkrTQrB3QK8209wSbIpLDEBrk8vUGYKQ41I&scope=https:';
var code = myRe.exec(url);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...