这个正则表达式和后面的temp什么意思 求解

var rs = new RegExp("(^|)id=([^&]*)(&|$)", "gi").exec(String(window.document.location.href)), tmp;

申明2个变量而已,rs为正则,获取location.href中以id=开始,直到碰到第一个&字符或者到结尾之间的内容

不就是声明的一个变量么!

转化下就是下面这个

 var rs = new RegExp("(^|)id=([^&]*)(&|$)", "gi").exec(String(window.document.location.href));
var tmp;

var rs = new RegExp("(^|)id=([^&]*)(&|$)", "gi").exec(String(window.document.location.href));
var tmp;

(^|)id=([^&]*)(&|$)这个正则表达式不对吧,^表示开头,怎么没加转义字符呢