js 正则表达式 $1-$9 重置
如题,我写了一个函数获取url中的参数,用到了正则表达式。getUrlParam:function(_key,_url){if(typeof(_url)=="object...
如题,我写了一个函数获取url中的参数,用到了正则表达式。
getUrlParam: function(_key, _url) {
if (typeof(_url) == "object") {
_url = _url.location.href;
} else {
_url = (typeof(_url) == "undefined" || _url == null || _url == "") ? window.location.href : _url;
}
//用正则表达式判断,利用定界符\b
var reg = new RegExp(".*\\b"+name+"\\b=([^&]+).*", "i");
var value = "";
if (reg.test(_url)) {
value = RegExp.$1;
}
return value;
}
在页面中我这样调用:url="http://localhost/HomedPC/play/?videoid=100002025&type=2",获取两个参数,var videoid = getUrlParam("videoid"); var videoType = getUrlParam("type")。结果两个值都是2,是因为正则表达式的静态属性$1的原因。所以我就想问,有没有办法在获取到值以后,将正则表达式的$1-$9重置。求大神解答 展开
getUrlParam: function(_key, _url) {
if (typeof(_url) == "object") {
_url = _url.location.href;
} else {
_url = (typeof(_url) == "undefined" || _url == null || _url == "") ? window.location.href : _url;
}
//用正则表达式判断,利用定界符\b
var reg = new RegExp(".*\\b"+name+"\\b=([^&]+).*", "i");
var value = "";
if (reg.test(_url)) {
value = RegExp.$1;
}
return value;
}
在页面中我这样调用:url="http://localhost/HomedPC/play/?videoid=100002025&type=2",获取两个参数,var videoid = getUrlParam("videoid"); var videoType = getUrlParam("type")。结果两个值都是2,是因为正则表达式的静态属性$1的原因。所以我就想问,有没有办法在获取到值以后,将正则表达式的$1-$9重置。求大神解答 展开
1个回答
展开全部
<!DOCTYPE html>
<html>
<head>
<title>test</title>
<script>
var getUrlParam = function (h, key) {
var reg = new RegExp (key + "\\=([^\\=\\&]*)");
if (h.match(reg)) {
return RegExp.$1;
}
else {
return "";
}
}
var h = window.location.href;
document.write(getUrlParam(h, "videoid") + "," + getUrlParam(h, "abc") + "," + getUrlParam(h, "type"));
</script>
</head>
<body>
</body>
</html>
更多追问追答
追问
这代码和我的区别在哪啊?求指点
追答
亲,对了么!对了就采纳,答案都在。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询