javascript - 使用 Javascript 获取字符串结尾

标签 javascript

我将字符串(url)存储在变量中 它可能看起来像一/二/三/test.aspx?ID=12312 我想提取查询字符串值,不是从 window.location 而是从 html

我想我可以使用子字符串并编写

var link = ($(this).find('a').attr('href')); 
var qs = link.substring( link.indexOf("="),  text.indexOf(" ") )

但它返回 = 之前的字符串,而不是之后的字符串。

我做错了什么? 提前致谢。

最佳答案

不久前,我为此编写了一个简短的函数:

  /**
   * Gets the query parameters of the given URI as a associative array or map
   * e.g. Given a URI http://www.level3labs.com/jaf?foo=bar&baz=bazzm, will
   * give {"foo":"bar", "baz":"bazzm"}
   * @param {URI} strUri The uri with a query
   * @return Object containing query params or and empty object 
   */
  function getQueryParams(strUri)   {
     var paramMap = {};
     if(!!strUri)   {
        return paramMap;
     }

     var strQuery = strUri.substring(strUri.indexOf("?"));
     if(strQuery && strQuery.indexOf("?") === 0 && strQuery.length > 1) {
        strQuery = strQuery.substring(1);
        var paramValArr = strQuery.split("&");
        for(var i = 0, len = paramValArr.length; i < len; i++)   {
           var paramVal = paramValArr[i];
           var delimIdx = paramVal.indexOf("=");

           var param = null;
           var val = null;
           if(delimIdx >= 0) {
              param = unescape(paramVal.substring(0, delimIdx));
              val = unescape(paramVal.substring(delimIdx + 1));
           }else {
              param = unescape(paramVal);
           }
           paramMap[param] = val;
        }
     }
     return paramMap;
  }

关于javascript - 使用 Javascript 获取字符串结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3455711/

相关文章:

javascript - 为什么变量++的工作方式与变量+1不同

javascript - 无法使用 React 中的 defaultValue 属性渲染 <select> 上的默认值

javascript - 如何根据公共(public)属性将数组中的对象分组为数组的数组

javascript - 表单 POST 未显示在 Controller 中

javascript - 在 Javascript 中遍历数组

javascript - 扩展 webpack 输出

javascript - 使用 angularJs 单击时更改图标

javascript - 过滤搜索结果

Javascript迭代高亮

javascript - 是否可以在浏览器中拦截第三方 POST 请求?