RegExp("(^|&)"+ name +"=([^&]*)(&|$)")什么意思?

function getUrlParam(name){ 
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); 
var r = window.location.search.substr(1).match(reg); 
if (r!=null) return unescape(r[2]); return null; 
}

这个方法是获得页面url的某个url参数的方法

var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");

这个正则是寻找&+url参数名字=值+&
&可以不存在。
var r = window.location.search.substr(1).match(reg);
if (r!=null) return unescape(r[2]); return null;

这里是开始匹配,找到了返回对应url值,没找到返回null。

match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。

该方法类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。

举个列子说明

          输出hello world

<script type="text/javascript">

var str="Hello world!"
document.write(str.match("world") + "<br />")
document.write(str.match("World") + "<br />")
document.write(str.match("worlld") + "<br />")
document.write(str.match("world!"))

</script>

输出结果 : world null null world

          var myurl=GetQueryString("leftId");
          var myurls=GetQueryString("leftIds");
          if(myurl !=null && myurl.toString().length>1)
         {
          $("#"+myurl).addClass("active");       //myurl为 left_yhqx_id路径
          }else{
          $("#left_sy_id").addClass("active");

         }
         if(myurls !=null && myurls.toString().length>1)
        {
         $("#"+myurls).addClass("active");    //myurls 为zngl
        }

原文地址:https://www.cnblogs.com/xinkun/p/8182803.html