在URL问题中解码URLURI /替换%20

时间:2017-06-21 20:45:28

标签: javascript regex sharepoint

以下代码用于获取网址参数。

<script type="text/javascript">
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}
</script>

<script type="text/javascript">
var url = window.location.protocol + "//" + window.location.hostname;
</script>

可以从另一页上的链接访问包含上述代码的页面。在该链接中,我传递了新闻项目ID和标题。 当具有上述代码的页面加载URL中的标题时,%20代替所有空格。 我已经阅读了这篇文章,发现我需要使用decodeURI或decodeURIComponent。我已尝试在多个地方执行此操作并在浏览器中提醒结果,但我似乎无法从URL中的标题中删除%20,因此它显而易见的是我的不要在正确的地方做。

这是我的结果......

http://PAGE URL HERE/NewsArchive.aspx?Story=New%20site%20launched&ID=17

我相信我需要包含/%20 / g的正则表达式,&#34; - &#34;在替换parts变量时,我接下来不了解正则表达式。

有人能让我知道我需要做什么,因为我画了一个空白。我已经看过很多类似的文章,但没有什么能解释我的知识水平低。

我也在SharePoint Stack Exchange上发布,因为它与SharePoint一起使用,但我没有任何对我有用的答案。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解这个问题,但您似乎只想检索参数?如果您在页面上打开包含参数的开发人员控制台(chrome中的f12),则可以键入swp并查看该对象的所有属性。如果您键入window.location,则可以看到完整的URI。一种简单的方法是使用window.location.href

.split将为您提供window.location.href.split('?')[1]字符后的所有内容。你可以?来获得正常的字符串。

请记住,split返回的数组是零索引。

编辑以回应评论: 您正在寻找的技术是decodeUri(window.location.href.split('?')[1])。更多细节here。我强烈建议彻底浏览。

history.replaceState