原生获取地址栏参数

方法一:采用正则

1:获取问号?后边的参数

标签(关键词): 获取问号后边的参数 获取井号号后边的参数


这里获取的是search后边的字符串

http://localhost:8080?access_token=AT-2022-zLNp4dX5byr6izgqF8y-RAzARLguJGp4&token_type=bearer&expires_in=28800&refresh_token=RT-1251-uR5uDmYpz50LIMtBor91OVE7YCDMj5lP
function GetQueryString(name)
{
    const reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
    let meetArr = window.location.search.substr(1).match(reg);
    if (meetArr != null) {
      console.log(meetArr[2], "meetArr[2]");
      return meetArr[2]
    } else {
      return null
    }
}
 
// 调用方法
alert(GetQueryString("参数名1"));

2:获取井号#号后边的参数

这里获取的是hash后边的字符串

http://localhost:8080/#access_token=AT-2022-zLNp4dX5byr6izgqF8y-RAzARLguJGp4&token_type=bearer&expires_in=28800&refresh_token=RT-1251-uR5uDmYpz50LIMtBor91OVE7YCDMj5lP

  function GetHashString(name) {
    const reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
    let meetArr = window.location.hash.substr(1).match(reg);
    if (meetArr != null) {
      console.log(meetArr[2], "meetArr[2]");
      return meetArr[2]
    } else {
      return null
    }
  }

方法二:传统方法

function UrlSearch() 
{
   var name,value; 
   var str=location.href; //取得整个地址栏
   var num=str.indexOf("?") 
   str=str.substr(num+1); //取得所有参数   stringvar.substr(start [, length ]

   var arr=str.split("&"); //各个参数放到数组里
   for(var i=0;i < arr.length;i++){ 
    num=arr[i].indexOf("="); 
    if(num>0){ 
     name=arr[i].substring(0,num);
     value=arr[i].substr(num+1);
     this[name]=value;
     } 
    } 
} 

var Request=new UrlSearch(); //实例化
alert(Request.id);

取自网络常用代码

相关说明:

1:match() 找到一个或多个正则表达式的匹配。
定义和用法
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
该方法类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。

语法
stringObject.match(searchvalue)
stringObject.match(regexp)

参数-描述
searchvalue 必需。规定要检索的字符串值。
regexp  必需。规定要匹配的模式的 RegExp 对象。如果该参数不是 RegExp 对象,则需要首先把它传递给 RegExp 构造函数,将其转换为 RegExp 对象。

返回值
它将返回一个数组,其中存放了与它找到的匹配文本有关的信息。该数组的第 0 个元素存放的是匹配文本,而其余的元素存放的是与正则表达式的子表达式匹配的文本。

2:substr()从起始索引号提取字符串中指定数目的字符。

语法:
stringObject.substr(start,length)

参数-描述
start   必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
length  可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。


3:window.location 对象所包含的属性
属性-描述
hash          从井号 (#) 开始的 URL(锚)
search        从问号 (?) 开始的 URL(查询部分)
host            主机名和端口号
hostname         主机名
href             完整的 URL
pathname         路径部分
port            端口号
protocol        协议

你可能感兴趣的:(原生获取地址栏参数)