@billjs/query-string

中文文档
1.0.2发布于 2018/12/13MITTypeScriptCommonJS零依赖近 30 天下载 3228

由TypeScript为Node.js或浏览器制作的简单而轻量级的查询串.

中文使用文档
文档目录8 节
  1. 安装
  2. 概览
  3. API 密码
  4. 剖析
  5. 字符串
  6. 解析函数
  7. 字符串功能
  8. 许可证

查询字符串 Travis-ci Status GitHub license typescript | javascript | node.js Npm Version

由TypeScript为Node.js或浏览器制作的简单而轻量级的查询串.

安装

安装使用 npm install 命令 :

npm install -S @billjs/query-string

概览

API 密码

剖析

将字符串分析为对象。 支持解析多个同名密钥,并将其分解为数组. 解码的密钥和值由 decodeURIComponent 函数. 如果您指定了 fn 参数,这意味着您可以将其用于自定义值.

  • 字符串 (单位:千美元)string源字符串
  • [声] (单位:千美元)string | null optional组分隔符,默认值 &
  • [eq] (单位:千美元)string | null optional)键值分隔符,默认值 =
  • [芬 (单位:千美元)解析函数)一个函数,可用于自定义返回值.
  • 返回时 (单位:千美元)object(中文(简体) )

分析一个正常的查询字符串 .

const data = parse('a=1&b=s');
console.log(data); // ==> { a: '1', b: 's' }

从 URL 解析搜索 .

const data = parse('http://foo.com?a=1&b=s');
console.log(data); // ==> { a: '1', b: 's' }

当密钥或值被编码时解析 .

const data = parse('test%3D=test%20%26*%20test');
console.log(data); // ==> { 'test=': 'test &* test' }

如果指定了 sep 和 eq , 请解析 .

const data = parse('a#1|b#s|b#s2', '|', '#');
console.log(data); // ==> { a: '1', b: ['s', 's2'] }

分析与数组相同的名称密钥 .

const data = parse('a=1&b=s1&b=s2');
console.log(data); // ==> { a: '1', b: ['s1', 's2'] }

解析用于自定义值 .

const fn = (key: string, value: string) => {
  if (key === 'b') return +value;
  if (key === 'c') return { on: true, off: false }[value];
  return value;
};
const data = parse('a=test&b=1&c=on', null, null, fn);
console.log(data); // ==> { a: 'test', b: 1, c: true }

字符串

将对象绑入字符串。 支持将数组串入同名密钥. 字符串密钥和值由 encodeURIComponent 函数. 如果您指定了 fn 参数,这意味着您可以将其用于自定义值.

  • 目标 (单位:千美元)object源对象
  • [声] (单位:千美元)string | null optional组分隔符,默认值 &
  • [eq] (单位:千美元)string | null optional)键值分隔符,默认值 =
  • [芬 (单位:千美元)字符串功能)一个函数,可用于自定义返回值.
  • 返回时 (单位:千美元)string(中文(简体) )

字符串对象.

const query = stringify({ a: '1', b: 's' });
console.log(query); // ==> 'a=1&b=s'

将数组字符串为同名密钥 .

const query = stringify({ a: '1', b: ['s1', 's2'] });
console.log(query); // ==> 'a=1&b=s1&b=s2'

字符串布尔值 .

const query = stringify({ a: '1', b: 's', c: false });
console.log(query); // ==> 'a=1&b=s&c=false'

如果密钥或值需要编码, 请将其字符串 .

const query = stringify({ 'test=': 'test &* test' });
console.log(query); // ==> 'test%3D=test%20%26*%20test'

如果指定了 sep 和 eq , 则将其固定 .

const query = stringify({ a: '1', b: ['s', 's2'] }, '|', '#');
console.log(query); // ==> 'a#1|b#s|b#s2'

为自定义值而绑定它 .

const fn = (key, value) => {
  if (key === 'c') return value ? 'on' : 'off';
  return value;
};
const obj = { a: 'test', b: 1, c: true };
const query = stringify(obj, null, null, fn);
console.log(query); // ==> 'a=test&b=1&c=on'

解析函数

用于自定义剖析的函数 .

宣言是这样的:

type ParseFunction = (key: string, value: string) => any;

字符串功能

自定义字符串的函数 .

宣言是这样的:

type StringifyFunction = (key: string, value: any) => any;

许可证

MIT 许可证

版本与发布记录

@billjs/query-string 共发布 3 个版本,首次发布于 2018/12/11;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.0.2latest2018/12/137 年前
1.0.02018/12/117 年前
1.0.12018/12/117 年前

关于 @billjs/query-string 的常见问题

@billjs/query-string 是什么?

由TypeScript为Node.js或浏览器制作的简单而轻量级的查询串.

如何安装 @billjs/query-string?

在项目目录运行 npm install @billjs/query-string,或使用 pnpm add / yarn add / bun add。

@billjs/query-string 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@billjs/query-string 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@billjs/query-string 可以商用吗?

@billjs/query-string 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@billjs/query-string 的下载量有多少?

根据 npm 官方下载统计,@billjs/query-string 在 2026/10/08 – 2026/11/06 这 30 天内被下载 3,228 次,日均约 108 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@billjs/query-string 还在维护吗?

最新版本 1.0.2 发布于 2018/12/13(7 年前);至今共发布 3 个版本,其中过去 12 个月发布了 0 个;首次发布于 2018/12/11。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。