JS获取url参数、主域名的方法实例分析

JS获取URL参数的方法实例分析

在前端开发中,经常需要获取URL中的参数,以便进行相应的逻辑处理。下面我们将介绍JS获取URL参数的方法。

方法一:正则表达式获取

常见的方法是通过正则表达式获取。

/**
 * @description 通过正则表达式获取URL中指定参数的值
 * @param {string} name 参数名
 * @param {string} url (可选)URL地址,默认为当前页面URL
 * @return {string} 参数值
 */
function getUrlParam(name, url) {
  var reg = new RegExp(`(^|&)${name}=([^&]*)(&|$)`, 'i')
  var u = url || window.location.search
  var r = u.substr(1).match(reg)
  if (r != null) {
    return unescape(r[2])
  }
  return null
}

该方法的实现原理是通过正则表达式匹配URL中的参数。其中^表示匹配开始符,&表示与下一参数的分隔符&=表示参数名和参数值的分隔符,[^&]*表示匹配参数值,$表示匹配结束符,i表示忽略大小写。

示例:

假设有一个URL为http://www.example.com/index.html?key1=value1&key2=value2,通过以下代码可以获取参数key1的值。

var key1Value = getUrlParam('key1', 'http://www.example.com/index.html?key1=value1&key2=value2')
console.log(key1Value) // "value1"

方法二:URLSearchParams获取

在ES6中,我们可以直接使用URLSearchParams获取URL中的参数。

/**
 * @description 通过URLSearchParams获取URL中指定参数的值
 * @param {string} name 参数名
 * @param {string} url (可选)URL地址,默认为当前页面URL
 * @return {string} 参数值
 */
function getUrlParam2(name, url) {
  var u = url || window.location.search
  var params = new URLSearchParams(u)
  return params.get(name)
}

该方法的实现原理是通过URLSearchParams构造函数获取URL中的参数,并使用get方法获取指定参数的值。

示例:

假设有一个URL为http://www.example.com/index.html?key1=value1&key2=value2,通过以下代码可以获取参数key2的值。

var key2Value = getUrlParam2('key2', 'http://www.example.com/index.html?key1=value1&key2=value2')
console.log(key2Value) // "value2"

JS获取主域名的方法实例分析

在浏览器中,我们常常需要获取当前网站的主域名。下面我们将介绍JS获取主域名的方法。

方法一:正则表达式获取

常见的方法是通过正则表达式获取。

/**
 * @description 通过正则表达式获取URL中的主域名
 * @param {string} url (可选)URL地址,默认为当前页面URL
 * @return {string} 主域名
 */
function getDomain(url) {
  var u = url || window.location.href
  var domainReg = /^https?:\/\/([^/]+)/i
  var parts = u.match(domainReg);
  if (parts != null && parts.length >= 2) {
    return parts[1].replace(/^www\./, '')
  }
  return null
}

该方法的实现原理是通过正则表达式匹配URL中的主域名。

示例:

假设当前网站的URL为http://www.example.com/index.html,通过以下代码可以获取主域名example.com

var domain = getDomain('http://www.example.com/index.html')
console.log(domain) // "example.com"

方法二:location对象获取

我们可以直接使用浏览器的location对象获取当前网站的主域名。

/**
 * @description 通过location对象获取URL中的主域名
 * @param {string} url (可选)URL地址,默认为当前页面URL
 * @return {string} 主域名
 */
function getDomain2(url) {
  var u = url || window.location.href
  var parts = u.match(/^(https?:\/\/)?([^/]+)/i);
  if (parts != null && parts.length >= 3) {
    var protocol = parts[1] ? parts[1].replace(/:$/, '') : '';
    var domainParts = parts[2].split('.');
    var domain = domainParts.slice(-2).join('.');
    if (domain === 'com.cn') {
      domain = domainParts.slice(-3).join('.');  // 处理.com.cn的情况
    }
    return protocol + '://' + domain;
  }
  return null
}

该方法的实现原理是通过location对象获取当前网址,并对URL进行解析得到主域名。

示例:

假设当前网站的URL为http://www.example.com/index.html,通过以下代码可以获取主域名example.com

var domain2 = getDomain2('http://www.example.com/index.html')
console.log(domain2) // "http://example.com"

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS获取url参数、主域名的方法实例分析 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • 使用js修改客户端注册表的方法

    使用js修改客户端注册表的方法需要借助于ActiveXObject对象及其子对象WScript.Shell。具体方法如下: 创建WScript.Shell对象 需要先创建 WScript.Shell 对象,可以使用以下代码。 var WshShell = new ActiveXObject("WScript.Shell"); 使用 Wsh…

    JavaScript 2023年6月11日
    00
  • JavaScript中的索引数组、关联数组和静态数组、动态数组讲解

    JavaScript中常见的数组类型主要有四种:索引数组、关联数组、静态数组和动态数组。 索引数组 索引数组是最基本的数组类型,其下标由数字表示,从0开始依次递增。 创建索引数组可以通过以下方式: const arr = [1, 2, 3]; 访问和修改索引数组中的元素可以通过下标进行: const arr = [1, 2, 3]; arr[0]; // 返…

    JavaScript 2023年5月27日
    00
  • javascript实现获取浏览器版本、浏览器类型

    获取浏览器版本、浏览器类型是前端开发中经常需要用到的技巧之一,下面是该功能的完整实现攻略: 获取浏览器类型 我们可以通过navigator.userAgent属性获取到当前浏览器的User-Agent标识,再根据这个标识来判断当前浏览器类型。以下是实现代码: function getBrowserType() { var userAgent = naviga…

    JavaScript 2023年6月11日
    00
  • 日期 时间js控件

    下面我来详细讲解“日期时间JS控件”的完整攻略。 什么是日期时间JS控件 日期时间JS控件,也称为日期选择器、时间选择器,是一种用于在网页中选择日期和时间的工具。它通常是由JS代码和CSS样式组成,可以根据需求定制外观和交互方式。 常见的日期时间控件有DatePicker、DateTimePicker、TimePicker等。 如何使用日期时间JS控件 使用…

    JavaScript 2023年5月27日
    00
  • ES6 let和const定义变量与常量的应用实例分析

    ES6 let和const定义变量与常量的应用实例分析 let的应用实例 示例1 // ES6之前 for(var i=0; i<5; i++) { setTimeout(function() { console.log(i) }, 1000) } // ES6之后 for(let i=0; i<5; i++) { setTimeout(func…

    JavaScript 2023年6月11日
    00
  • 一文了解JavaScript用Element Traversal新属性遍历子元素

    一文了解JavaScript用Element Traversal新属性遍历子元素 什么是Element Traversal? Element Traversal是指DOM中用于遍历子元素的标准API,它包含了一系列用于访问当前DOM元素子元素的属性,其中最常用的就是children和firstElementChild等。 children属性 childre…

    JavaScript 2023年6月10日
    00
  • JS使用数组实现的队列功能示例

    为了实现队列功能,我们可以使用JavaScript中的数组来完成。下面是使用数组实现队列的完整攻略: 一、什么是队列? 在计算机科学中,队列是一种常见的数据结构,用于存储按顺序排列的元素。元素添加到队列的一端,称为队尾或者后端;元素从队列的另一端删除,称为队头或者前端。具有FIFO(先进先出)特性,即最先加入队列的元素最先被删除。 二、使用数组实现队列 使用…

    JavaScript 2023年5月27日
    00
  • JS网页图片查看器(兼容IE、FF)可控制图片放大缩小移动

    JS网页图片查看器是一种用JavaScript编写的插件,可以在网页中显示图片,并且兼容IE和Firefox浏览器,支持放大、缩小、移动等功能。以下是使用JS网页图片查看器的完整攻略。 步骤一:引入插件文件 将JS网页图片查看器的插件文件引入网页中,可以使用以下代码实现: <link rel="stylesheet" href=&q…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部