js获得url中的参数

时间:2022-10-22 13:30:19
    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; //返回参数值
}

name:为需要获得的参数名称

name:为需要获得的参数名称

(^|&)
^ //表示开始匹配
^|& //开始匹配处&可有可无

([^&]*)
[^&]* //匹配非&的任意字符 0到任意多


(&|$)

& //结束匹配

&|$ //结束匹配&可有可无


假设name=‘a’此正则可以匹配 "a=1","&a=1","&a=11&"

假设http:www.a.com?a=1&c=2

window.location.search
获得?a=1&c=2

.substr(1) 表示从位置1开始 所以获得a=1&c=2

.match(reg)表示进行正则匹配
如果name=‘a’ 匹配到的是a=1&,返回的数组是{‘a=1&’,‘’,‘1’,‘&’}

第一个是整体匹配,第二个匹配的是(^|&),第三个匹配的是([^&]*),第四个匹配的是(&|$)

r[2]就获得了参数值1,而unescape方法是用来解码的

例如:

<script type="text/javascript">

var test1="Hello 9366黄岛主!"

test1=escape(test1)
document.write (test1 + "<br />")

test1=unescape(test1)
document.write(test1 + "<br />")

</script>

运行结果

Hello%209366%u9EC4%u5C9B%u4E3B%21
Hello 9366黄岛主!