请考虑下面的网址:
http://test/Preview.aspx?By=AJ_Swift&Title=Meeting_Planning_&_Participation
从上面的 URL 中,我正在扩展每个查询字符串值。对于标题查询字符串,我需要将其拆分为符号下划线"_"并用空格替换/连接。问题是"&"。javasript 拆分在"&"处停止并转义后面的所有内容。
var title = vars['Title'].split("_").join(" ");
给我Meeting Planning
如何拆分和加入,以便我得到Meeting Planning & Participation
您可以
简单地将_
替换为空格,如下所示。
"Meeting_Planning_&_Participation".replace(/_/g, " ");
整个代码:
function getParam(query, key) {
var vars = query.split(/&(?![_])/);
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (pair[0] == key) return pair[1];
}
}
var url = "http://test/Preview.aspx?By=AJ_Swift&Title=Meeting_Planning_&_Participation";
var query = url.replace(/.*??/, "");
var title = getParam(query, "Title");
alert(title.replace(/_/g, " "));
function getQueryVariable(url, query) {
url = url.replace(/.*??/, "");
url = url.replace(/_&_/, "_%26_");
var vars = url.split('&');
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split('=');
if (decodeURIComponent(pair[0]) == query) {
return decodeURIComponent(pair[1]);
}
}
console.log('Query variable %s not found', variable);
}
用法:
var url = "http://test/Preview.aspx?By=AJ_Swift&Title=Meeting_Planning_&_Participation "
var By = getQueryVariable(url, 'By');
var Title = getQueryVariable(url, 'Title');
Title = Title.replace(/_/ig, " ");
console.log(By);
console.log(Title);
输出:
AJ_Swift
Meeting Planning & Participation
演示:
http://codepen.io/tuga/pen/VLYyyL