在javascript中从url hash获取数据

时间:2012-07-20 10:17:19

标签: javascript regex url hash

我正在尝试从下面的url哈希中读取“source”参数和“group”参数。我不知道如何使用正则表达式并继续使用空白变量。

如何从

下面的url hash中读取“source”和“group”参数
    console.log(urlObj.hash); // #source-items?source=1002&?group=Menu
    var source = urlObj.hash.replace( /.*source=/, "");

2 个答案:

答案 0 :(得分:0)

尝试

function getParameterByName(urlString, name)
{
  name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
  var regexS = "[\\?&]" + name + "=([^&#]*)";
  var regex = new RegExp(regexS);
  var results = regex.exec(urlString);
  if(results == null)
    return "";
  else
    return decodeURIComponent(results[1].replace(/\+/g, " "));
}

并通过getParameterByName(urlObj.hash, "source");

调用此功能

更新:这是Get query string values in JavaScript

答案的略微修改版本

答案 1 :(得分:0)

如果您在?之后删除&,则可以使用以下内容:

function parseParams() {
    var params = window.location.hash.split('?')[1].split('&').map(function(item) {
        return item.split('=');
    });
    var namedparams = {};

    for (i=-1; param = params[++i]; ) {
        namedparams[param[0]] = param[1];
    }

    return namedparams;
}

这是您使用此功能的方式:

var params = parseParams();
params.group; // the group parameter
params.source; // the source parameter