querystring.parse(str[, sep[, eq[, options]]])


  • str <string> 要解析的 URL 查询字符串
  • sep <string> 用于分隔查询字符串中键值对的子字符串。默认值: '&'
  • eq <string>。用于在查询字符串中分隔键和值的子字符串。默认值: '='
  • options <Object>
    • decodeURIComponent <Function> 用于解码查询字符串中百分比编码字符的函数。默认值: querystring.unescape()
    • maxKeys <number> 指定要解析的最大键数。指定 0 可取消键计数限制。默认值: 1000

querystring.parse() 方法将 URL 查询字符串(str)解析成一组键值对。

【The querystring.parse() method parses a URL query string (str) into a collection of key and value pairs.】

例如,查询字符串 'foo=bar&abc=xyz&abc=123' 被解析为:

【For example, the query string 'foo=bar&abc=xyz&abc=123' is parsed into:】

{
  "foo": "bar",
  "abc": ["xyz", "123"]
} 

querystring.parse() 方法返回的对象不会从 JavaScript 的 Object 原型继承。这意味着像 obj.toString()obj.hasOwnProperty() 等典型的 Object 方法未定义,并且无法使用。

【The object returned by the querystring.parse() method does not prototypically inherit from the JavaScript Object. This means that typical Object methods such as obj.toString(), obj.hasOwnProperty(), and others are not defined and will not work.】

默认情况下,查询字符串中的百分号编码字符将被假定使用 UTF-8 编码。如果使用了其他字符编码,则需要指定一个替代的 decodeURIComponent 选项:

【By default, percent-encoded characters within the query string will be assumed to use UTF-8 encoding. If an alternative character encoding is used, then an alternative decodeURIComponent option will need to be specified:】

// Assuming gbkDecodeURIComponent function already exists...

querystring.parse('w=%D6%D0%CE%C4&foo=bar', null, null,
                  { decodeURIComponent: gbkDecodeURIComponent });