window.location.href.split(?)【1】.match什么意思
时间: 2023-07-06 07:43:55 浏览: 240
这段代码是对查询参数进行进一步处理。在上一个问题中我们得到了类似 "q=JavaScript&category=programming" 的查询参数字符串,接下来使用 `.match()` 方法对其进行匹配,返回一个数组,包含符合指定规则的子字符串。
例如,如果我们想要匹配所有以 "q=" 开头的子字符串,可以使用以下代码:
```
var queryString = "q=JavaScript&category=programming";
var matched = queryString.match(/^q=.*/);
console.log(matched);
```
这将输出 ["q=JavaScript"],因为只有 "q=JavaScript" 符合指定的规则,即以 "q=" 开头的子字符串。
在本例中,".match()" 方法的参数是一个正则表达式,它的含义是:以 "q=" 开头,后面可以是任意字符("[\s\S]*" 表示任意字符,包括换行符),直到字符串末尾。因此,如果查询参数字符串中有多个查询参数,只有以 "q=" 开头的查询参数才会被匹配。
需要注意的是,如果查询参数字符串中没有符合规则的子字符串,`.match()` 方法返回null。因此,在使用该方法时,应该首先检查返回值是否为null,以确保代码的正确性。
相关问题
window.location.href获取参数
window.location.href是一个JavaScript内置对象,用于获取当前页面的URL地址。获取URL中的参数可以通过字符串截取的方式来实现,具体步骤如下:
1. 首先通过window.location.href获取当前页面的URL;
2. 通过indexOf方法获取参数在URL中的位置;
3. 通过substring方法截取出参数所在位置后的字符串;
4. 最后通过split方法将字符串以指定分隔符分割成一个数组,就可以得到所需的参数值了。
下面是一个示例代码:
```
// 获取URL中的参数值
function getUrlParam(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return decodeURIComponent(r);
}
return null;
}
// 使用示例
var id = getUrlParam('id');
console.log(id);
```
以上代码会获取当前页面URL中名为id的参数值,并输出到控制台中。
解释代码if(ua.match(/MicroMessenger/i) == 'micromessenger' || ua.indexOf("qq/") != -1 && ua.indexOf("_sq_") != -1) { document.getElementById("body1").setAttribute('oncontextmenu', "return true" ); document.getElementById("body1").setAttribute('oncopy', "return true" ); document.getElementById("body1").setAttribute('onselectstart', "return true" ); var ua_url = window.location.href; strs = ua_url.split("?"); var ua_body = document.getElementById("body1"); ua_body.innerHTML = "<br><br><div align = 'center'>如需浏览,请长按网址复制后使用浏览器访问<br><br>"+strs[0]+"</div> "; } else { xyurl = changeURLArg(window.location.href, "8_t", rr); var state = {title:'',url:window.location.href}; history.pushState(state,'',xyurl); } </script> </html>
这段代码的作用是根据用户的 User-Agent 字符串(即ua变量)判断用户当前使用的浏览器类型是否为微信或 QQ 浏览器,并根据不同情况执行不同的代码。如果用户使用的是微信或 QQ 浏览器,则将网页中的 oncontextmenu 、oncopy 和 onselectstart 事件设置为返回 true ,从而禁止用户复制、粘贴、剪切等操作,同时在网页中添加一段提示文字,提示用户长按网址复制后使用浏览器访问。如果用户使用的不是微信或 QQ 浏览器,则将当前网页的 URL 中的参数 8_t 替换为一个随机字符串 rr ,并将其加入到浏览器的历史记录中,以实现不刷新页面而改变 URL 的效果。
阅读全文