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中闭包(Closure)详解

    JavaScript中闭包(Closure)详解 在JavaScript中,闭包是一个重要的概念。闭包可以让变量不受外部干扰,实现类似于面向对象编程的私有变量或者函数的功能。在本文中,我们将详细讨论JavaScript中闭包的概念、特点、运用场景和优化技巧。 闭包的概念与特点 闭包指的是函数和函数内部能够访问到的变量的组合。在JavaScript中,函数不仅…

    JavaScript 2023年6月10日
    00
  • Javascript继承机制的设计思想分享

    Javascript继承机制的设计思想分享 概述 Javascript是一门基于原型实现的语言,继承机制是Javascript的核心概念之一。本文将讲述Javascript继承机制的设计思想和实现方式,为读者提供全面的知识体系。 原型链 Javascript的继承机制是基于原型链实现的,原型链是一种基于对象的链式结构。每个Javascript对象都有一个指向…

    JavaScript 2023年6月11日
    00
  • 一文详解JavaScript中的replace()函数

    当我们需要对字符串中的某个子串进行替换时,JavaScript中的 replace() 函数是一个非常有用的工具。本文将详细讲解该函数的基本语法、常用选项以及一些实际的应用示例。 基本语法 replace() 函数的基本语法如下: string.replace(regexp|substr, newSubstr|function) 其中,string 是原始字…

    JavaScript 2023年5月28日
    00
  • JavaScript实现抽奖器效果

    抽奖器效果是很常见的一种交互效果,下面就用 Markdown 格式给大家详细讲解一下如何使用 JavaScript 实现抽奖器效果。 准备工作 在实现抽奖器效果之前,我们需要先准备好以下工作: 在 HTML 页面中放置一个用于显示抽奖结果的元素,比如一个 span 标签。 准备好抽奖数据,可以是一个数组,每个元素表示一个奖品。 实现步骤 接下来就可以开始实现…

    JavaScript 2023年6月11日
    00
  • 详解javascript void(0)

    标题:详解javascript void(0) 简介 void(0) 是一个JavaScript语言中的操作符,这个方式可以用来执行一段代码却不返回任何值。通常使用 void(0) 可以防止页面被重定向,即不会跳转到新的页面。 使用方法 常见的使用场景: 在 href 属性中使用 void(0): <a href="javascript:vo…

    JavaScript 2023年5月28日
    00
  • vscode录音及语音实时转写插件开发并在工作区生成本地mp3文件附踩坑日记!

    vscode录音及语音实时转写插件开发并在工作区生成本地mp3文件附踩坑日记! 背景 语音识别技术的普及使得语音转写逐渐成为电脑输入的重要方式之一,而实时语音转写更是越来越多的应用场景。本文介绍如何在VS Code中开发一个语音实时转写插件,并将实时转写的结果保存到本地mp3文件中。 准备 在进行实时语音转写插件的开发之前,需要准备以下工具和环境: 麦克风及…

    JavaScript 2023年6月11日
    00
  • JS中定时器的使用及页面切换时定时器无法清除问题的解决办法

    JS中定时器的使用及页面切换时定时器无法清除问题的解决办法 在开发中,定时器是经常使用的工具,可以让我们在某个时间间隔内执行一段代码。JS中常用的定时器有setTimeout和setInterval两种。 使用setTimeout setTimeout是在指定的一段时间后执行一段代码,且只会执行一次。可以使用clearTimeout取消定时器,代码示例如下:…

    JavaScript 2023年6月11日
    00
  • 纯JS实现简单的日历

    接下来我将详细讲解如何使用纯JS实现简单的日历。 步骤一:搭建基本框架 在HTML文件中创建一个容器,用于显示日历,并将其与CSS文件链接起来: <div id="calendar"></div> <link rel="stylesheet" href="calendar.css…

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