我尝试获取包含哈希的URL参数ReturnUrl
:
http://localhost/Site?ReturnUrl=%2fPlace#/get
我使用的代码 How can I get query string values in JavaScript?
但它只返回%2fPlace
。为什么?
答案 0 :(得分:2)
虽然location.search + location.hash
将在技术上返回?ReturnUrl=%2fPlace#/get
#/get
不是ReturnUrl
参数的一部分,但浏览器会将其解释为当前网址的片段。
要更准确地处理此问题,您应该将#
的网址编码为%23
,以便网址为http://localhost/Site?ReturnUrl=%2fPlace%23%2fget
答案 1 :(得分:1)
您的问题在
中"=([^&#]*)"
正则表达式标签。删除哈希标记,并添加" location.hash"你的正则表达式搜索,你应该被设置。
<script type="text/javascript">
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&]*)"),
results = regex.exec(location.search + location.hash);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
var ReturnUrl = getParameterByName('ReturnUrl');
document.write(ReturnUrl);
</script>