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日

相关文章

  • Javascript Array pop 方法

    以下是关于JavaScript Array pop方法的完整攻略。 JavaScript Array pop方法 JavaScript Array pop方法用于从数组中删除最后一个元素,并返回该元素的值。该方法会改变原始数组,删除最后一个元素,原始数组的长度会减少1。 下面是一个使用pop方法的示例: var arr = [1, 2, 3]; consol…

    JavaScript 2023年5月11日
    00
  • JS对象数组中如何匹配某个属性值

    针对这个问题,我们可以分为以下几个步骤进行说明: 定义一个JS对象数组; 遍历数组,检查所有对象是否包含指定的属性值; 如果找到指定的对象,就返回该对象;如果没有找到,就返回 undefined。 下面是具体的代码实现和示例: 定义 JS 对象数组 首先我们需要定义一个包含一组 JS 对象的数组,如下所示: let students = [ { id: 1,…

    JavaScript 2023年6月10日
    00
  • window.parent与window.openner区别介绍

    window.parent与window.opener区别介绍 在网页中经常出现需要进行页面跳转的情况,比如新窗口打开链接,或者在iframe中嵌入其他网页。在JavaScript中有两个常用的属性可用于控制页面跳转:window.parent和window.opener。在本文中,将详细介绍这两个属性的区别以及其应用场景。 window.parent wi…

    JavaScript 2023年6月11日
    00
  • async/await实现Promise.all()的方式

    使用async/await实现Promise.all()的方式,需要结合async函数和await关键字来实现,具体步骤如下: 定义一个异步函数asyncPromiseAll,接收一个Promise数组作为参数,并在该函数内部使用await关键字等待所有Promises的执行结果。 通过使用try-catch代码块,捕获异常并将其抛出以确保异步函数能够正常执…

    JavaScript 2023年5月27日
    00
  • 浅谈php安全性需要注意的几点事项

    当开发任何Web应用程序时,安全性应该始终是开发人员的首要任务。在PHP应用程序中,如何确保程序的安全性?以下是几个需要注意的关键点: 1. 合适的数据验证 合适的数据验证是确保web应用程序的安全性的基本工具。在PHP中,应该使用一个专门的验证库,例如Symfony的Validation组件、Laravel的验证器等。通过使用这些验证库,可以确保用户提供的…

    JavaScript 2023年6月11日
    00
  • 一文看懂如何简单实现节流函数和防抖函数

    引言: 在前端开发中,我们常常需要处理一系列与用户交互相关的事件,如滚动、键盘输入、鼠标移动等等。这些事件会频繁触发,造成过多的资源浪费,因此需要使用节流和防抖函数来解决这个问题。本文将详细讲解如何实现节流和防抖函数。 一、什么是节流函数和防抖函数? 节流函数:在一段时间内,只执行一次函数。比如,一个页面上有多个滚动事件,如果每一次滚动都触发事件处理函数,可…

    JavaScript 2023年6月11日
    00
  • JS 作用域与作用域链详解

    当我们使用 JavaScript 编写代码时,经常会遇到变量作用域的问题,这个时候就需要了解 JavaScript 的作用域与作用域链。了解 JavaScript 的作用域与作用域链,可以帮助我们更好地理解 JavaScript 代码运行的流程,从而提高编程效率和代码质量。 一、作用域 1.1 什么是作用域 作用域是指变量和函数的可访问范围。JavaScri…

    JavaScript 2023年6月10日
    00
  • 原生JS生成九宫格

    生成九宫格的主要流程可以分为以下三步: 根据九宫格的行列数计算出总格子数和每行格子数; 循环生成格子,并设置其属性和样式; 将所有生成的格子添加到页面中。 下面是一个实现九宫格的JavaScript代码示例: // 获取容器元素 var container = document.getElementById(‘container’); // 定义九宫格的行列…

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