【发布时间】:2014-03-09 15:37:00
【问题描述】:
我想从 URL 查询字符串中获取数据并将其显示在 HTML 文档的正文中。我无法让脚本用空格替换 + 符号。
示例网址:www.mywebsite.com/?item=Sandwich&bread=White+Bread
在 HTML 正文中,item 的文本字段将显示“Sandwich”,但面包的文本字段将显示“White+Bread”。如何将 + 替换为空格?
这是我用来从 URL 获取值的函数
function querystring(key) {
var re=new RegExp('(?:\\?|&)'+key+'=(.*?)(?=&|$)','gi');
var r=[], m;
while ((m=re.exec(document.location.search)) != null) r.push(m[1]);
return r;
}
$("span.item").text(querystring('item'));
$("span.bread").text(querystring('bread'));
我尝试过使用它,但它告诉我数组没有替换功能。
.replace(/\+/g, ' ')
【问题讨论】:
-
那是因为数组没有替换方法。您在哪里尝试使用
.replace()电话?如果你把它放在while循环中(比如r.push(m[1].replace(...)),它可能会起作用。另外,你为什么不使用已经执行此解析的许多用户创建的函数之一?有一些优化检索查询字符串中的键值,以及对此类内容的更好支持。例如 - stackoverflow.com/questions/901115/…(我喜欢第二个答案) -
也许我没有正确理解这个问题,但为什么不使用
encodeURI() / decodeURI()? -
谢谢,艾伦。我尝试搜索,但我想我没有搜索正确的标签。该解决方案效率更高,对我来说非常完美。
标签: javascript arrays url query-string