2012-01-28 55 views
0

我有一個請求的URL /串VAR像如何從請求字符串中提取參數值的相對URL?

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` 

它看起來非常嚇人。我不知道如何從中提取了以下參數對,然後從對價值my_file.user.file

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

回答

1

用純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

使用提取相對file_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("/"))讓你繩子

1

當URL是在varaible sUrl的:

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

另請參閱此example