Mock 数据生成器 在浏览器里批量生成测试数据,30 多种字段类型覆盖中国本地化场景(中文姓名、手机号、身份证号、银行卡号、统一社会信用代码、车牌、省/市/区、完整地址),同时含通用字段(UUID、数字、日期、枚举、布尔、IP、URL、正则、占位图)。输出 JSON / JSONL / CSV / SQL INSERT 四种格式,内置用户、订单、商品、文章 4 个常用表模板,单次最多生成 10000 条,所有计算本地完成,不上传不联网。
| 特性 | 说明 |
|---|---|
| 字段类型 | 30+:个人、地址、公司金融、车辆、数字、文本、日期、枚举、网络、视觉 |
| 中国本地化 | 身份证号含 GB 11643 校验位、银行卡含 Luhn、统一信用代码含 GB 32100 校验 |
| 输出格式 | JSON 数组 / JSONL(NDJSON)/ CSV(含 UTF-8 BOM)/ SQL INSERT |
| 数量 | 1 – 10000 条,1 万条 200ms 内 |
| 表模板 | 用户 / 订单 / 商品 / 文章,一键加载完整字段 |
| 状态持久化 | 字段配置自动存 localStorage |
| 分组 | 字段 |
|---|---|
| 个人 | 中文姓名(性别可选)、英文姓名、手机号(运营商可选)、身份证号(性别/年龄段/省份可选)、邮箱、用户名 |
| 地址 | 省/市/区(到省/到市/到区)、完整地址(含楼栋)、邮编 |
| 公司金融 | 公司名、统一社会信用代码、银行卡号(银行可选)、价格 |
| 车辆 | 车牌号(省份简称可选) |
| 数字 | 整数、小数、自增序号(前缀+起始+步长) |
| 文本 | UUID v4、中文段落、Lorem Ipsum、自定义正则 |
| 日期 | 日期(自定义格式)、时间戳(秒/毫秒) |
| 枚举布尔 | 枚举(自定义候选)、布尔(true 概率可调) |
| 网络 | IPv4、IPv6、URL、域名 |
| 视觉 | HEX 颜色、占位图 URL(picsum) |
| 字段 | 校验算法 | 用途 |
|---|---|---|
| 身份证号 | GB 11643 加权和 mod 11,结果映射 1,0,X,9,8,7,6,5,4,3,2 | 校验末位 |
| 银行卡号 | Luhn(双倍位减 9 + 求和补 10) | 校验末位 |
| 统一社会信用代码 | GB 32100 / mod 31 | 校验末位 |
意味着这些数据能通过任何在线/系统验证器的格式校验——可以用来测试你的校验代码是否实现对了,但不要用于任何真实业务。
全部本地随机生成,但校验位算法都是真的——身份证号按 GB 11643 加权和补位,银行卡用 Luhn,统一社会信用代码按 GB 32100。所以它们能通过格式校验(在线/系统验证器都会判定合法),但身份证号对应的"前 17 位 + 校验位"组合是随机产生的,理论上有极小概率与真实居民身份证号重合(约万亿分之一量级)。不要用于任何真实场景——只能用于开发联调、测试样本、教学演示。底栏已醒目标注"仅供测试"。
可以,自增序号 字段类型就是干这个的:起始 1001、步长 1、前缀 ORD-、后缀留空,生成出来就是 ORD-1001、ORD-1002、ORD-1003…起始值支持负数和大数;如果想加日期前缀(如 ORD-20250524-001),目前只能用自定义正则字段:ORD-20250524-\d{3},但顺序号会是随机三位而非递增。纯递增 + 复杂模板的需求建议在生成后用脚本后处理。
支持 90% 的常见用法:字符类 [A-Z0-9]、[一-龥]、[^abc] 否定类、范围 a-z;元字符 \d(数字)、\w(字母数字下划线)、\s(空格)、.(任意小写字母数字);量词 {n} {n,m} + * ?;字面字符 -、_、汉字、@ 等。不支持:分组 (...)、选择 a|b、反向引用、前/后顾。所以验证码、券码、订单号、复杂格式 ID 都没问题;但要生成"邮箱前缀 @ 域名"这种结构,建议用邮箱字段类型,不要硬凑正则。
1 万条 × 10 字段在主流电脑上 200ms 以内,普通 JS 计算量没瓶颈。瓶颈在渲染——textarea 显示几 MB 文本会卡,所以页面对超过 20 万字符的输出做了截断显示("前 20 万字符 + 省略"),但"复制全部"和"下载"按钮始终取完整内容。如果你要 10 万条以上,建议分批生成(每次 1 万条单独下载文件再合并),或者把字段砍少一点。
已经处理了——下载的 CSV 文件自带 UTF-8 BOM 字节头(EF BB BF),Excel / WPS / Numbers 打开会自动识别为 UTF-8,中文姓名、地址都能正常显示。如果你用其他工具(如 cat / Python csv.reader / 编辑器手动打开)发现开头多了一个 不可见字符,那就是 BOM——读取时去掉即可(Python 用 encoding="utf-8-sig")。复制粘贴到 textarea 时不会有 BOM,BOM 仅在下载文件里。
字段定义、数量、输出格式、表名都自动存到当前浏览器的 localStorage(key 是 toolbox_mock-data_state),刷新页面、关浏览器再回来都还在。但是:换浏览器、清缓存、隐私模式都会丢;目前没有跨设备同步。如果配置很重要,建议保存生成出来的 JSON 数据本身(不是配置),或者手动记录字段表。后续可能加"导出 / 导入配置"功能。
工具内置 50 多个常见 6 位地区码(覆盖 31 个省级行政区),每个省至少 2 个地市。选"江苏省"时会只从江苏的地区码里抽——常州、苏州、南京等。如果你选的省份内置的地区码很少(如西藏、青海、新疆),样本多样性会受限。完整地区码有 3000+ 项,本工具为体积考虑只内置代表性的;如果需要某个具体县区的代码,用自定义正则字段 370102\d{8}[0-9X] 自己拼前 6 位即可(但校验位需要算,建议用"身份证号"字段,否则末位是错的)。
可以。点"用户表"加载 10 个字段后,再点"+ 添加字段"会在末尾追加一个新字段(默认是中文姓名),随后下拉切类型、改字段名、改选项即可。点其他模板会整体覆盖当前字段——所以混用模板要谨慎。建议工作流:先挑最接近的模板 → 删/加单个字段微调 → 保存(自动)。