url-split
v1.0.0
Published
A lightweight URL parsing utility that splits a URL into its components (protocol, host, path, query, hash).
Maintainers
Readme
url-split
一个轻量的 URL 解析工具库,将 URL 拆分为协议、主机、路径、查询参数与 hash 等组成部分。无第三方依赖。
安装
npm install url-split使用
import { parseUrl, parseQuery } from 'url-split';
// 或 CommonJS: const { parseUrl, parseQuery } = require('url-split');
const result = parseUrl('https://example.com:8080/a/b?x=1&y=2#frag');
// {
// protocol: 'https',
// host: 'example.com:8080',
// hostname: 'example.com',
// port: '8080',
// path: '/a/b',
// query: { x: '1', y: '2' },
// queryString: 'x=1&y=2',
// hash: 'frag'
// }
parseQuery('a=1&a=2&b=3');
// { a: ['1', '2'], b: '3' }API
parseUrl(url)
将 URL 字符串解析为各组成部分。优先使用内置 WHATWG URL,解析失败(如相对路径)时回退到正则拆分。
url{string}待解析的 URL。- 返回
{Object},包含protocol、host、hostname、port、path、query、queryString、hash字段。 - 当
url不是字符串时抛出TypeError。
parseQuery(queryString)
将查询字符串解析为对象。允许带前导 ?;重复 key 自动合并为数组;无值 key 的值为空字符串。
queryString{string}形如a=1&b=2的字符串。- 返回
{Object<string, string|string[]>}。
开发与构建
源码为 TypeScript,位于 lib/,通过 webpack 打包为 UMD 产物(经 ts-loader 做类型检查,babel 转译 ES6)。
npm install # 安装依赖
npm run dev # 开发构建(watch,未压缩,输出 dist/url-split.js)
npm run build # 生产构建(压缩,输出 dist/url-split.min.js + 类型声明)
npm run type-check # 仅类型检查
npm test # 先 build 再运行测试目录结构:
lib/— 源码,按功能拆分:query.ts(解析查询串) /split.ts(正则回退拆分) /url.ts(解析 URL) /index.ts(统一导出)build/— webpack 配置:webpack.base.config.js(共用) /webpack.dev.config.js(开发) /webpack.prod.config.js(生产)
License
ISC
