2016-09-14 13 views
1

私はJavaScriptでjavascriptを使用してエンコードされたURLからクエリ文字列の値を取得するにはどうすればよいですか?

var querystring = "http%3A%2F%2Fspsrv%3A1361%2FSitePages%2FCountryManagment%2Easpx%3FCountryId%3D1"; 

次エンコードされたURL文字列はどのように私はそれからCountryIdの値を取得することができますか?

+0

CountryId' '代わりに入れて数? – Mohammad

+0

URLをどのようにエンコードしましたか? – str

+0

どういう意味ですか? – user6599525

答えて

1

あなたはdecodeURIcomponentでURLをデコードして、URLからパラメータを取得するためにregexを使用する必要があります

var querystring = decodeURIComponent("http%3A%2F%2Fspsrv%3A1361%2FSitePages%2FCountryManagment%2Easpx%3FCountryId%3D1"); 
document.getElementById("decodedURL").innerHTML = querystring; 
function getParam(param, url) { 
    if (!url) url = window.location.href; 
    param = param.replace(/[\[\]]/g, "\\$&"); 
    var regex = new RegExp("[?&]" + param + "(=([^&#]*)|&|#|$)"), 
     results = regex.exec(url); 
    if (!results) return null; 
    if (!results[2]) return ''; 
    return results[2].replace(/\+/g, " "); 
} 
document.getElementById("parameter").innerHTML = getParam("CountryId", querystring); 

デモ:JSFIDDLE

+1

ありがとうございました。あなたは私に数時間の欲求不満を救った。 – user6599525

+0

@ user6599525 - 問題ありません。あなたが達成したいことを今でも続けることができることを願っています –

+0

あなたの解決策はより単純ですが、長いです。 – Mohammad

1

最初に、あなたはあなたが行うことができます.decodeURI()を使用して、URLをデコードする必要がありますそれ。次に.split()を使用してURLを配列に分割したり、.match()を使ってURLの特定の部分を正規表現で選択することができます。

var querystring = "http%3A%2F%2Fspsrv%3A1361%2FSitePages%2FCountryManagment%2Easpx%3FCountryId%3D1"; 
 

 
var result = decodeURIComponent(querystring).split("?")[1].split("=")[1]; 
 
var result2 = decodeURIComponent(querystring).match(/CountryId=([\d]+)/)[1]; 
 

 
console.log(result, result2);

関連する問題