JavaScript三种获取URL参数值的方法

目录
  • 前言
  • URLSearchParams
  • URL
  • 纯JS

前言

在 URL 中,查询参数字符串值通常提供有关请求的信息,例如搜索参数或正在使用的对象的 ID。如果在前端处理任何业务或请求逻辑,了解如何从 URL 中检索查询字符串值非常重要。本文分享三种从 URL 获取参数的方法。

URLSearchParams

除 IE 11 之外的所有主要浏览器版本都支持该 URLSearchParams 接口。它通过解析 URL 的查询字符串并提供访问值的方法来工作。

例如:

此接口的缺点之一是您必须仅将 URL 的查询字符串传递给它。如果您正在使用当前的浏览器 URL,这很容易做到,因为您只需通过 window.location.search。 如果您使用任何其他 URL,则需要单独解析并传递查询字符串。

const params = new URLSearchParams("q=devpoint&page=1");
params.get("q"); // 'devpoint'
params.get("page"); // '1'

要将查询参数解析为对象,请使用 URL.searchParams 的 .entries()方法,该方法返回一个 Iterator key/value 对,并将Object.fromEntries其转换为对象。

const params = new URLSearchParams("q=devpoint&page=1");
const entries = params.entries();
Object.fromEntries(entries); // {q: 'devpoint', page: '1'}

URL

除了 IE 11 之外,所有主要浏览器版本也都支持 URL API。它提供了一种更灵活的 URL 解析方式,还提供了一种访问查询字符串值的方式。

例如:

const url = new URL("https://stackabuse.com/search?q=devpoint&page=1");
const searchParams = url.searchParams;
searchParams.get("q"); // 'devpoint'
searchParams.get("page"); // '1'

url.searchParams 与 URLSearchParams 返回的实例对象类型相同。

上面的 url 对象也将 URL 的所有部分分解成各个部分。

例如:

url.href; // 'https://stackabuse.com/search?q=devpoint&page=1'
url.origin; // 'https://stackabuse.com'
url.protocol; // 'https:'
url.host; // 'stackabuse.com'
url.hostname; // 'stackabuse.com'
url.port; // ''
url.pathname; // '/search'
url.search; // '?q=devpoint&page=2'
url.hash; // ''

纯JS

如果由于某种原因无法访问上述 API 或希望对解析有更多控制权,可以使用以下代码将查询字符串解析为对象。

function getQueryParams(url) {
    const paramArr = url.slice(url.indexOf("?") + 1).split("&");
    const params = {};
    paramArr.map((param) => {
        const [key, val] = param.split("=");
        params[key] = decodeURIComponent(val);
    });
    return params;
}

函数执行后的效果如下:

getQueryParams("https://stackabuse.com/search?q=devpoint&page=2"); // { q: 'devpoint', page: '2' }

到此这篇关于JavaScript三种获取URL参数值的方法的文章就介绍到这了,更多相关JS获取URL参数值内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • js获取url参数值的两种方式

    方法一:正则分析法 复制代码 代码如下: function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return n

  • javascript获取URL参数与参数值的示例代码

    复制代码 代码如下: <script>                  function goto_url(url){                      var new_url = "http://shop.usteel.com/index.php?app=list_release";                      var d_date  = getParameter("date",url);                    

  • JS获取URL中参数值(QueryString)的4种方法分享

    方法一:正则法 复制代码 代码如下: function getQueryString(name) {    var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');    var r = window.location.search.substr(1).match(reg);    if (r != null) {        return unescape(r[2]);    }    return null;}/

  • 解析js如何获取当前url中的参数值并复制给input

    复制代码 代码如下: function getObject(objectId) {    if (document.getElementById && document.getElementById(objectId)) {        return document.getElementById(objectId);    } else if (document.all && document.all(objectId)) {        return documen

  • JS根据key值获取URL中的参数值及把URL的参数转换成json对象

    不废话了,直接贴代码了,通过示例一讲解JS根据key值获取URL中的参数值及把URL的参数转换成json对象,示例二讲解js获取url传递参数,具体内容请看下文 示例一: //把url的参数部分转化成json对象 parseQueryString: function (url) { var reg_url = /^[^\?]+\?([\w\W]+)$/, reg_para = /([^&=]+)=([\w\W]*?)(&|$|#)/g, arr_url = reg_url.exec(url

  • js获取url中指定参数值的示例代码

    如下所示: 复制代码 代码如下: ///获取url中指定参数        // <param name="paras">参数名称</param>        ///        function request(paras) {            var url = location.href;            var paraString = url.substring(url.indexOf("?") + 1, url.l

  • nodejs实现获取当前url地址及url各种参数值

    复制代码 代码如下: //需要使用的模块 http   url 当前url   http://localhost:8888/select?aa=001&bb=002 var http = require('http'); var URL = require('url'); http.createServer(function(req, res){    var arg = url.parse(req.url).query;  //方法一arg => aa=001&bb=002   

  • javascript 获取url参数的正则表达式(用来获取某个参数值)

    例子: //javascript传参数(多个) var url = "B.aspx?txtA="+document.getElementById("txtName").value; url +="&txtB="+document.getElementById("txtAge").value; window.open(url,'xWindow','width=640,height=400,status=no,toolba

  • JavaScript三种获取URL参数值的方法

    目录 前言 URLSearchParams URL 纯JS 前言 在 URL 中,查询参数字符串值通常提供有关请求的信息,例如搜索参数或正在使用的对象的 ID.如果在前端处理任何业务或请求逻辑,了解如何从 URL 中检索查询字符串值非常重要.本文分享三种从 URL 获取参数的方法. URLSearchParams 除 IE 11 之外的所有主要浏览器版本都支持该 URLSearchParams 接口.它通过解析 URL 的查询字符串并提供访问值的方法来工作. 例如: 此接口的缺点之一是您必须仅将

  • JavaScript获取URL参数的方法分享

    目录 一.字符串 split 方法 二.使用 URLSearchParams 方法 1.解析搜索字符串 2.生成搜索字符串 3.Node.js 代码 三.使用正则匹配方法 四.使用第三方库 qs 一.字符串 split 方法 url 地址是字符串形式的,所以利用 split 方法将参数提取出来,该方法比较常用,而且容易理解(无关正则) let URL = "http://www.baidu.com?name=小宇&age=25&sex=男&wife=小君"; f

  • JavaScript三种方法解决约瑟夫环问题的方法

    目录 概述 问题描述 循环链表 有序数组 数学递归 总结 概述 约瑟夫环问题又称约瑟夫杀人问题或丢手绢问题,是一道经典的算法问题.问题描述也有很多变式,但大体的解题思路是相同的.本篇将以循环链表.有序数组.数学递归三种方式来解决约瑟夫环问题. 问题描述 先来看一下什么是约瑟夫环问题? 在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀

  • js获取url传值的方法

    本文实例讲述了js获取url传值的方法.分享给大家供大家参考,具体如下: js获取url参数值: index.htm?参数1=数值1&参数2=数值2&参数3=数据3&参数4=数值4&...... 静态html文件js读取url参数 根据获取html的参数值控制html页面输出 一.字符串分割分析法 这里是一个获取URL带QUESTRING参数的JAVASCRIPT客户端解决方案,相当于asp的request.querystring,PHP的$_GET 函数: <Scr

  • JavaScript三种绑定事件方式及相互之间的区别分析

    本文实例讲述了JavaScript三种绑定事件方式及相互之间的区别.分享给大家供大家参考,具体如下: JavaScript三种绑定事件的方式: 1. <div id="btn" onclick="clickone()"></div> //直接在DOM里绑定事件 <script> function clickone(){ alert("hello"); } </script> 2. <div i

  • JS中用EL表达式获取上下文参数值的方法

    1. action返回参数到页面 /** * 测试js中获取后台传值 * @param model * @param req * @return String */ @RequestMapping("getValue") public String getValue(Model model, HttpServletRequest req){ model.addAttribute("stringValue", "测试在js中取值..."); mod

  • Javascript三种字符串连接方式及性能比较

    第一种:用连接符"+"连接字符串 str="a"; str+="b"; 这种方法相对以下两种,最便捷快速.建议100字符以下的连接使用这种连接方式. 第二种:以数组作为中介,使用jion函数进行连接 var arr=new Array(); arr.push(a); arr.push(b); var str=arr.join(""); 第三种:利用对象属性连接字符串 function stringConnect(){ this

  • C# 如何解析获取Url参数值

    今天遇到一个需求,需要处理通过接口传过来的一个参数,参数内容为一个拼接好的Url地址,且该地址还会携带了一些额外的参数,包括但不限于数字,字符串,json串.样例如下: http://www.cplemom.com/?url=https://www.jb51.net/={"id":12,"name":"今天天气不错"} 现在的问题就是,我需要将url参数中的data值的json中的id修改为url参数中id的值,然后再拼接成完整的url去获取数据

  • Java三种获取redis的连接及redis_String类型演示(适合新手)

    0>确保redis进程服务开启 1>第一种:直接获取redis连接,通过redis.()方法测试连接,如果返回PONG则证明连接正常 //1> jedis的入门代码案例,测试连接 @Test public void test01(){ //1. 获取java连接 redis的连接对象 Jedis jedis = new Jedis("node1", 6379); //2. 执行相关操作 String ping = jedis.ping(); System.out.pr

  • SpringBoot定制三种错误页面及错误数据方法示例

    目录 定制错误页面 自定义 error.html 自定义动态错误页面 自定义静态错误页面 定制错误数据 1. 自定义异常处理类 2. 自定义错误属性处理工具 我们知道 Spring Boot 已经提供了一套默认的异常处理机制,但是 Spring Boot 提供的默认异常处理机制却并不一定适合我们实际的业务场景,因此,我们通常会根据自身的需要对 Spring Boot 全局异常进行统一定制,例如定制错误页面,定制错误数据等. 定制错误页面 我们可以通过以下 3 种方式定制 Spring Boot

随机推荐