在JavaScript中提取URL参数值

时间:2014-08-30 21:10:02

标签: javascript regex

我有以下函数(我没写过)来提取URL参数值:

function getURLParameter(name) {
    return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search) || [, ""])[1].replace(/\+/g, '%20')) || null
}

我几乎没有正则表达式的经验。此代码目前对参数名称进行区分大小写搜索。我想让RegExp对参数名称进行不区分大小写的搜索。有人可以告诉我如何改变它来实现这一目标吗?

2 个答案:

答案 0 :(得分:3)

为regexp(more info)添加i标志:

new RegExp('your regexp', 'i')

答案 1 :(得分:0)

这是我一直在使用的可能有用的东西,因为我需要做一些非常类似的事情来拉下当前页面的URL的子串然后传入变量用于我的几个功能。

以下是我的网址的通用格式:

文件:///Users/myname/folder/teamname.html

这就是我解析它们的方式:

function parseURL() {
  var match = window.location.href.match(/(\w+).html$/);
  if (match) {
    return match[1];
  }
  return null;
}

这样做:

1)检查当前页面的URL 2)将URL解析为数组的两个不同片段:" teamname"和" html" 3)然后我返回匹配[1],即" teamname"

我如何使用它:

从那里,我为parseURL函数声明一个变量,如下所示:

var teamSched = parseURL();

现在,我可以使用上面概述的具有相同URL语法的任何页面进行动态调用,以使用parseURL()中的页面特定变量执行特定代码。然后,我使用该变量从我的代码中的对象生成唯一的数据集,这些数据集的关键字是"团队名称"由parseURL()创建的变量。

如果我错了,有人肯定会纠正我,但只要您通过parseURL从您的网址中提取的值与变量,对象密钥相匹配,区分大小写就不应该成为一个因素等等,你正试图访问。

我希望有所帮助!