JavaScript - 仅解析部分URL,但不解析指定位置之后的所有内容

时间:2012-11-28 00:24:48

标签: javascript jquery regex parsing url

我有一个脚本(JS)解析URL后缀,然后从该数据定义变量。

网址: http://www.example.com/somepage.html?bg=white&&accent=gray

var PAGE = {
    bg: location.href.match(/bg=(.*)/)[1],
    accent: location.href.match(/accent=(.*)/)[1]
};

alert("Page Background: " + PAGE.bg + " \n Page Complements: " + PAGE.accent);

注意,url从我创建的页面获取其参数,然后访问该页面(用户单击各种选项,然后点击“下一步”按钮)。     
除了PAGE.bg返回white&&accent=gray之外,一切都很有效,显然会在 bg=之后返回所有内容。我想知道如何返回BG,所以像PAGE.bg之类的parseFloat那样,但作为JavaScript的初学者,我不知道怎么做,这是一个详细的问题,所以我没有任何运气谷歌搜索它。有任何想法吗?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

请尝试以下方法:

bg: location.href.match(/bg=([^&]*)/)[1],

答案 1 :(得分:0)

为什么不使用现有的图书馆? URL.js非常棒,并且完全符合您的要求。它可以从URI的查询参数创建哈希值。

有关使用搜索/查询字符串的确切文档,请参阅this page

var uri = new URI('http://www.example.com/somepage.html?bg=white&&accent=gray')
var PAGE = uri.search(true)

这样,如果稍后添加更多查询参数,您仍然可以在对象表示中获取它们