【发布时间】:2015-06-13 05:54:46
【问题描述】:
我已经关注了这篇精彩帖子的答案:How can I get query string values in JavaScript?
但是,我遇到的问题是,在某些情况下,我的查询字符串值可能包含特殊字符,例如 * + - / 等,例如:
?userid=de+8d49b7*8a85a3/222343
上述功能不满足这些。如何获取查询字符串值和特殊字符?我试过了:
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
var prodId = encodeURIComponent(getParameterByName('prodId'));
该解决方案也必须在 IE8+ 中运行。
【问题讨论】:
-
如果您没有正确编码 URI 组件,请不要指望任何通用解决方案对您有用。
-
@naomik - 多么可爱的回应。
标签: javascript url query-string