使用反斜杠获取字符串中的查询字符串参数

时间:2017-03-22 17:49:20

标签: javascript regex string

我需要你的帮助,

给出以下带有反斜杠的查询字符串:

"G:\\AS\\Asf\\ASF\\IMTS\\V11\\IMTS.hta?report=true&type=note"

如何解析报告的值并输入?

示例:

GetUrlParam('report') returns true

GetUrlParam('type') returns note

3 个答案:

答案 0 :(得分:0)



var str = "G:\\AS\\Asf\\ASF\\IMTS\\V11\\IMTS.hta?report=true&type=note";

function getUrlParam(param){
  var rg = new RegExp(param + "=(\\w+)"),
      res = str.match(rg)[1];
      console.log(res);
}

getUrlParam('report');
getUrlParam('type');




答案 1 :(得分:0)

这个正则表达式(?<=[\?&])([^=]+)=([^&]+)怎么样?第一个匹配组是参数,第二个匹配组是值。

根据您的示例,匹配组为:

  • 匹配1 report=true 第1组report 第2组true

  • 第2场比赛 type=note 第1组type 第2组note

答案 2 :(得分:0)

我已经修改了在stackoverflow上发现的answer并且已经提出了这个问题:

&#13;
&#13;
var url = "G:\\AS\\Asf\\ASF\\IMTS\\V11\\IMTS.hta?report=true&type=note"

var vars = {}, hash;
var hashes = url.slice(url.indexOf('?') + 1).split('&');  // starts query string after index of ? and splits query string based on &

for (var i = 0; i < hashes.length; i++) {
  hash = hashes[i].split('=');		    // creates new array on each iteration (property and key)
  vars[hash[0]] = hash[1];		    // add key value pair to object
}

console.log(vars);

function GetUrlParams(key) {
  if (typeof vars[key] !== 'undefined') {
    return vars[key];
  }
}

console.log(GetUrlParams('report'));
console.log(GetUrlParams('type'));
&#13;
&#13;
&#13;