javaScript用正则来获取url传递的参数
用window.location.href获取url再js正则来获得需要的参数;
这个正则有多种写法,这里我选择这样写,要查找的属性名我直接以参数的形式传进去,用正则查找,以"?&#"这三个其中一个符号开头+属性名变量+等号和后面要查找除了"?&#"这三个符号的字符.正则写完之后我选择用exec这个方法来查找,这个方法会把查找到的结果以数组的形式返回,我再把等号后面的结果单独分一个组(在正则里面用"()"包起来的是一个分组),这样找到的结果里面就有二个分组一个是类似于'?key=110'这种和单独一个'110'的属性值分组第二个分组就是我们要的结果,返回第二个分组即可.(这就是我查找的思路,当然写法有很多)
正则
/*正则获取URL参数*/ function queryURLParams(url, name) { var pattern = new RegExp("[?&#]+" + name + "=([^?&#]+)"); var res = pattern.exec(url); console.log(res); if (!res) return; if (!res[1]) return; return res[1]; } var url = "https://news.cnblogs.com/?key=110&id=123456"; var res = queryURLParams(url, "key"); console.log(res);
使用方法
getParameterByName(url,"name")
结果示例