我在javascript中有以下编码的URL字符串
var querystring = "http%3A%2F%2Fspsrv%3A1361%2FSitePages%2FCountryManagment%2Easpx%3FCountryId%3D1";
如何从中获取CountryId
的值?
答案 0 :(得分:1)
您需要使用decodeURIcomponent对网址进行解码,然后使用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 :(得分:1)
首先,你应该使用.decodeURI()
来解码网址,你可以这样做。然后,您可以使用.split()
将网址拆分为数组,或使用.match()
通过正则表达式选择网址的特定部分。
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);