Как извлечь относительный URL из значений аргумента из строки запроса? - PullRequest
0 голосов
/ 29 января 2012

У меня есть запрос url / string var, как

http://ip_or_url:4773/image_renderer.service?action=resize&from_format=png&from_url=http://ip_or_url:4773/my_file.user.file&to_format=jpg&w=1920&h=1200` 

Это выглядит ужасно страшно. Интересно, как извлечь из него следующую пару аргументов, а затем извлечь относительное file_url из значения этой пары my_file.user.file

from_url=http://195.19.243.13:4773/my_file.user.file ?

Ответы [ 3 ]

1 голос
/ 29 января 2012

Когда URL находится в переменной sUrl:

var sFromUrl = sUrl.match(/from_url=[^&]*/)[0];
var sBasename = sFromUrl.match(/[^\/]*$/)[0];

См. Также пример .

1 голос
/ 29 января 2012

С чистым JavaScript.Он вернет массив пар ключ / значение.

function getUrlParts(url){
    // url contains your data.
    var qs = url.indexOf("?");
    if(qs==-1) return [];
    var fr = url.indexOf("#");
    var q="";
    q  = (fr==-1)? url.substr(qs+1) : url.substr(qs+1, fr-qs-1);
    var parts=q.split("&");
    var vars={};
    for(var i=0;i<parts.length; i++){
        var p = parts[i].split("=");
        vars[unescape(p[0])]= p[1] ? unescape(p[1]):"";
    }
    // vars contain all the variables in an array.
    return vars;
}

Дайте мне знать, если какой-либо из ваших тестов окажется неудачным.

1 голос
/ 29 января 2012

Используйте это, чтобы получить переменные url в JS

function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');

    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }

    return vars;
}

, а затем string.substring(string.search("/")), чтобы получить ваш кусок строки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...