JS获取URL参数方法

(1)正则方法

function GetQueryString(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null)returnunescape(r[2]); return null; } //调用方法 alert(GetQueryString("参数名1")); alert(GetQueryString("参数名2")); alert(GetQueryString("参数名3"));

reg正则表达式表示寻找匹配 ‘&参数名=参数值&’ 的内容,两边的&都可以没有。
  1. (^|&)表示开始可以有一个&也可以没有。如下的URL获取参数name的值则匹配到的内容为name=zhangsan;获取参数id的值匹配内容为 &id=123&。
  2. ([^&]*)表示0个或多个非&字符,即为捕获到的参数值 r[2]。
  3. (&|$)表示结尾可以有一个&也可以没有。如下的URL获取参数sex的值则匹配到的内容为&sex=man;获取name的值则匹配到的内容为name=zhangsan&。
    三个括号表示分组,r[2]位第二个括号捕获到的内容,即为参数值。
举例 【JS获取URL参数方法】有URL为:index.html?name=zhangsan&id=123&sex=man

    推荐阅读