【问题标题】:Javascript get URL parameter that starts with a specific stringJavascript 获取以特定字符串开头的 URL 参数
【发布时间】:2017-01-04 23:55:40
【问题描述】:

使用 javascript,我想将所有以 Loc- 开头的 url 参数作为数组返回。是否有一个正则表达式会返回这个,或者有一个选项来获取所有 url 参数,然后循环遍历结果?

示例:www.domain.com/?Loc-chicago=test

如果url中存在两个,我需要同时获取,比如:

www.domain.com/?Loc-chicago=test&Loc-seattle=test2

【问题讨论】:

  • 有很多问题可以回答如何在 Javascript 中获取查询字符串参数。我找不到任何用于将所有参数作为数组获取的方法,但是从这些答案中的代码中推导出来应该很容易。

标签: javascript url-parameters startswith


【解决方案1】:

您可以使用window.location.search 从 url 获取(包括?)之后的所有参数。然后就是循环遍历每个参数来检查是否匹配。

不确定您期望的结果是什么样的数组,但这里是一个非常粗略且基本的示例,仅输出数组中的匹配值:

var query = window.location.search.substring(1);
var qsvars = query.split("&");
var matched = qsvars.filter(function(qsvar){return qsvar.substring(0,4) === 'Loc-'});
matched.map(function(match){ return match.split("=")[1]})

【讨论】:

    【解决方案2】:

    使用URLSearchparams

    URLSearchParams 接口定义了与 URL 的查询字符串。

    var url = new URL("http://" + "www.domain.com/?Loc-chicago=test&NotLoc=test1&Loc-seattle=test2");
    var paramsString = url.search;
    
    var searchParams = new URLSearchParams(paramsString);
    
    for (var key of searchParams.keys()) {
      if (key.startsWith("Loc-")) {
        console.log(key, searchParams.get(key));
      }
    }

    【讨论】:

      【解决方案3】:

      这是一个您可以使用的函数,它接受一个参数作为您要查找的参数的开头:

      function getUrlParameters(var matchVal) {
          var vars = [];
          var qstring = window.location.search;
      
          if (qstring) {
              var items = qstring.slice(1).split('&');
              for (var i = 0; i < items.length; i++) {
                  var parmset = items[i].split('=');
                  if(parmset[0].startsWith(matchVal)
                      vars[parmset[0]] = parmset[1];
              }
          }
          return vars;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-28
        • 2019-03-20
        • 1970-01-01
        • 2017-08-08
        • 2020-05-11
        • 1970-01-01
        • 2018-07-13
        • 1970-01-01
        相关资源
        最近更新 更多