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

yizhihongxing

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动态给对象添加属性和值的实现方法”的完整攻略: 方式一:使用点运算符添加属性 使用点运算符添加属性非常简单,只需要在对象后加上”.”,紧接着加上新增的属性名,再赋予一个值即可。 示例一: let person = { name: ‘张三’, age: 25 }; person.gender = ‘男’; console.log(person)…

    JavaScript 2023年5月27日
    00
  • js拆分字符串并将分割的数据放到数组中的方法

    首先,用JavaScript拆分字符串并将分割的数据放到数组中可以使用split()方法。该方法基于指定分隔符将字符串分割为子字符串,并将这些子字符串存储在数组中。以下是该方法的基本语法: string.split(separator, limit) 其中,separator是用于分割的字符串或正则表达式,limit是一个可选的整数参数,用于指定返回的子字符…

    JavaScript 2023年5月28日
    00
  • 原生js实现星星闪烁效果

    下面是“原生js实现星星闪烁效果”的完整攻略。 1. 实现思路 星星的闪烁效果可以通过控制星星的透明度来实现。具体来说,我们可以通过逐渐改变星星的透明度让星星出现或消失,从而达到闪烁的效果。 2. 实现步骤 2.1 创建星星 首先,我们需要先创建星星的元素,可以使用canvas或者div来实现。 2.2 实现闪烁效果 为了实现闪烁效果,我们需要按照一定的时间…

    JavaScript 2023年6月10日
    00
  • 关于document.cookie的使用javascript

    下面我将为您详细讲解如何使用JavaScript中的document.cookie来操作cookie: 什么是cookie? Cookie是一种与特定网站相关联的小文本数据文件。在用户访问网站时,网站将Cookie存储在用户的计算机上,以便下次访问该站点时使用。它可以记录用户的各种信息,例如他们的用户名、购物车内容等。 使用document.cookie操作…

    JavaScript 2023年6月11日
    00
  • js实现温度计时间样式代码分享

    下面我将为您详细讲解“JS实现温度计时间样式代码分享”的完整攻略。 1. 准备工作 在写代码之前,您需要准备一下几个东西: 温度计需要的样式和图片(例如温度计的背景图、指针图等)。 一个用于展示温度计的div元素,可以通过创建一个div元素并设置它的样式定位来实现。 2. 编写HTML代码 在HTML文件中,需要定义一个div元素,用于展示温度计。例如: &…

    JavaScript 2023年5月27日
    00
  • JavaScript的removeChild()函数用法详解

    JavaScript的removeChild()函数用法详解 什么是removeChild()函数? 在JavaScript中,使用removeChild()函数可以删除指定的子节点。 removeChild()函数的用法 要使用removeChild()函数,需要先找到要删除的节点,然后将其作为参数传递给removeChild()函数。例如: var el…

    JavaScript 2023年6月10日
    00
  • JavaScript利用多彩线条摆出心形效果的示例代码

    下面我来详细讲解JavaScript利用多彩线条摆出心形效果的示例代码的完整攻略。 简介 本示例代码利用了HTML5中的<canvas>标签和JavaScript的requestAnimationFrame()方法,通过不断绘制直线最终呈现出心形效果。代码较为简单,但需要一定的数学基础。 准备工作 在HTML页面中添加一个<canvas&g…

    JavaScript 2023年6月10日
    00
  • JS如何实现在页面上快速定位(锚点跳转问题)

    JS如何实现在页面上快速定位(锚点跳转问题)的攻略: 在HTML中使用锚点 可以在文档中使用a标签和name属性来建立一个锚点。例如: <a name="chapter1">章节1</a> 然后在页面中其他位置加入链接: <a href="#chapter1">跳转到章节1</…

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