使用'&'从URL读取参数时出现问题

时间:2014-06-11 14:07:16

标签: jquery

我正在使用以下代码从我的搜索应用的URL中读取参数。

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, " "));
}

这是如何工作的,我通过了一个' q'参数,即搜索查询,然后在精简搜索框中的页面上显示它。它适用于正常情况,即

如果 q =这是测试,那么这个词就是测试'将被添加到精炼搜索框,用户可以继续优化搜索,但如果 q = this&那,即如果它包含'&'然后,首先,这将在精炼搜索框中添加为此&那,但是当我优化搜索时,它变为这个& 被剥离,查询变为'这个'。

任何帮助?

1 个答案:

答案 0 :(得分:1)

您需要对&符号进行百分比编码才能在URL中使用它。

你之前在网址上看到了这个问题。这种方式的&符号将以%26的形式出现

http://www.asciitable.com/
使用%预先添加任何这些代码将在查询字符串中以纯文本形式出现。

http://www.eso.org/~ndelmott/url_encode.html