如何使用 JavaScript 从 URL 读取 GET 数据? [英] How to read GET data from a URL using JavaScript?

查看:30
本文介绍了如何使用 JavaScript 从 URL 读取 GET 数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将数据从一个页面传递到另一个页面.

I'm trying to pass data from one page to another.

www.mints.com?name=something

www.mints.com?name=something

如何使用 JavaScript 读取name?

How to read name using JavaScript?

推荐答案

请在使用前查看这个,更当前的解决方案像下面这样的自定义解析函数,或第三方库.

Please see this, more current solution before using a custom parsing function like below, or a 3rd party library.

下面的代码有效并且在<的情况下仍然有用code>URLSearchParams 不可用,但它是在 JavaScript 没有可用的原生解决方案的时候编写的.在现代浏览器或 Node.js 中,更喜欢使用内置功能.<​​/p><小时>

The a code below works and is still useful in situations where URLSearchParams is not available, but it was written in a time when there was no native solution available in JavaScript. In modern browsers or Node.js, prefer to use the built-in functionality.

function parseURLParams(url) {
    var queryStart = url.indexOf("?") + 1,
        queryEnd   = url.indexOf("#") + 1 || url.length + 1,
        query = url.slice(queryStart, queryEnd - 1),
        pairs = query.replace(/+/g, " ").split("&"),
        parms = {}, i, n, v, nv;

    if (query === url || query === "") return;

    for (i = 0; i < pairs.length; i++) {
        nv = pairs[i].split("=", 2);
        n = decodeURIComponent(nv[0]);
        v = decodeURIComponent(nv[1]);

        if (!parms.hasOwnProperty(n)) parms[n] = [];
        parms[n].push(nv.length === 2 ? v : null);
    }
    return parms;
}

使用如下:

var urlString = "http://www.example.com/bar?a=a+a&b%20b=b&c=1&c=2&d#hash";
    urlParams = parseURLParams(urlString);

它返回一个像这样的对象:

which returns a an object like this:

{
  "a"  : ["a a"],     /* param values are always returned as arrays */
  "b b": ["b"],       /* param names can have special chars as well */
  "c"  : ["1", "2"]   /* an URL param can occur multiple times!     */
  "d"  : [null]       /* parameters without values are set to null  */ 
} 

所以

parseURLParams("www.mints.com?name=something")

给予

{name: ["something"]}

<小时>

编辑:此答案的原始版本使用了基于正则表达式的 URL 方法-解析.它使用了一个较短的函数,但该方法存在缺陷,我将其替换为合适的解析器.


EDIT: The original version of this answer used a regex-based approach to URL-parsing. It used a shorter function, but the approach was flawed and I replaced it with a proper parser.

这篇关于如何使用 JavaScript 从 URL 读取 GET 数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆