zoukankan      html  css  js  c++  java
  • 解析查询 queryString 请求参数的函数

    又一次碰到这个问题,不长记性的按照最简单的脑回路去处理,被说了,幸亏当时写博记录了下翻出来了,再补充些其他的方法吧。

    url: http://10.10.1.149:3000/wechat/index?tab=6&0.13189101305300976

    需求:获取 tab 的值

    1、简单直白的写法,但是会有隐患,写法如下:

    var querystringTab = window.location.search.split('&')[0].split('=')[1]

    2、URLSearchParams 处理 url 查询字符串,IE 有兼容问题

    https://developer.mozilla.org/zh-CN/docs/Web/API/URLSearchParams

    var urlParams = new URLSearchParams(window.location.search);
    var querystringTab = urlParams.get('tab') || 0;

    3、处理 queryString 的方法如下:

    // 例如当前网页地址为 https://i.cnblogs.com/EditPosts.aspx?opt=1&name=hhh  
    function getQueryVariable(variable) {
           var query = window.location.search.substring(1);
           var vars = query.split('&');
           for (var i = 0; i < vars.length; i++) {
                 var pair = vars[i].split('=');
                   if (decodeURIComponent(pair[0]) == variable) {
                         return decodeURIComponent(pair[1]);
                   }
           }
      }
     var value = getQueryVariable("name") // 获取key值为 name 对应的 value
     console.log(value) // "hhh"

    quety string 请求参数

    1. 本质上可以理解为一种序列化的格式,与 json 类似,它是一种字典类型的容器,里面可以保存键值对(key-value pair)。只不过 querystring 这种形式的限制比较多,其 value 只有字符串型。
    2. Query String 的格式实际上没有要求,当写成 key1=value1&key2=value2&... 这种形式时,Query String 实际上就是一个字典。字典里的字段,大家有时候叫变量(Variable),有时候叫参数(Param),在没有歧义的时候,可以随意称呼。
    3. 是URL在 ? 后面、#前面的所有内容,整个这一段文字叫 query string,有些地方也叫 search (比如 window.location.search这里 search 这个变量名就是告诉你,这个东西叫 search)

    参考文档:

    该方法具体用法及介绍:

    https://stackoverflow.com/questions/2090551/parse-query-string-in-javascript/2091331#2091331

  • 相关阅读:
    Knockoutjs 实践入门 (2) 绑定事件
    HTTP If-Modified-Since引发的浏览器缓存汇总
    net.sf.json和 com.fasterxml.jackson中对象转json的区别
    JPA EntityManager详解
    Spring JPA中OneToOne和OneToMany用法
    Spring Data JPA中CrudRepository与JpaRepository的不同
    Git提交撤销
    Tomcat启动报StackOverflowError
    Git分支合并冲突解决(续)
    Git分支合并冲突解决
  • 原文地址:https://www.cnblogs.com/zhangym118/p/10656113.html
Copyright © 2011-2022 走看看