很多人做 手机号码去重工具,第一周就在画上传页和进度条。做完才发现:Excel 把长数字变成了科学计数法,英国号和中国号用同一套长度判断,导出只有“删掉重复行”一种结果。界面不是难点。难点是功能边界要先写死。
下面按开发顺序排,适合自己写,也适合给外包当需求。买现成工具时,同样可以用这张清单对照,选购角度见 号码去重工具怎么选。
先定“重复”的定义,再写代码
同一份名单里,下面这些要不要算同一个号,必须写进规则文档,不能靠程序员临场发挥:
13800138000和+86 138 0013 800008613800138000和008613800138000- 英国
07700 900123和+44 7700 900123 - 带分机的
13800138000-101
前两条通常应判重复。分机要单独约定:多数营销场景分机不是线路标识,不应并进主号。定义不定,后面所有测试都没有对错。
功能一:导入必须能指定哪一列是号码
真实文件很少是“一列纯号码”。常见情况是姓名、渠道、备注挤在一起,表头还可能是英文 mobile、whatsapp、phone1。
最低要求:
- 上传后预览前 20 行,让人勾选号码列
- 支持 CSV 和 xlsx;CSV 要处理 UTF-8、GBK 和带 BOM
- 科学计数法、前导 0 被 Excel 吃掉的单元格,要能识别并标成异常,而不是默默写成错误数字
只做文本框粘贴的,只能当抽查,不能当工序。批量任务形态见 手机号码批量去重怎么设计任务。
功能二:规范化引擎,而不是一串 replace
去空格、去括号只是第一步。合格的手机号码去重工具会:
- 去掉分隔符
- 识别或补全国家码
- 按该地区规则处理前导 0 和本地号长度
- 产出一个稳定的比对键(常见是 E.164),同时保留原始值和地区
规则要对所有任务一致。运营每人一套 Excel 公式,库会在三个月内裂开。全球规则的实现坑见 全球号码去重系统开发要注意什么。
功能三:文件内去重和历史库去重拆开
一次导入其实有两层结果:
- 本文件重复:这份表自己撞车
- 历史重复:撞上以往客户、投诉号、已采购包
混成一个“重复”开关,业务没法决定:文件内重复是渠道质量问题,历史重复才是不该再触达。历史层依赖 号码数据库系统 里的底库,而不是每次把旧 Excel 再拖进来比一次。
功能四:结果至少三类,且能回流业务系统
导出不要只给“去重后的表”。至少分开:
| 状态 | 用途 |
|---|---|
| 通过 | 进入外呼、短信或社交触达 |
| 重复 | 标明命中的是文件内还是哪类历史数据 |
| 格式异常 | 长度不对、缺地区、被 Excel 破坏的单元格 |
字段里建议带上规范化后的号码、原值、来源批次。下游 CRM 接不住,去重等于白做。
功能五:任务可回看,权限能挡住整库下载
工具一旦给团队用,就会出现:两人同时上传、有人把底库另存为、失败任务重跑把半截结果当最终。
开发时就要有任务状态(排队、处理中、成功、失败、可重试),以及管理员 / 运营 / 只查重三种角色。协作细节可参考 号码去重复软件如何多人查重。
明确不要塞进第一版的功能
空号检测、画像、群发、WhatsApp 在线状态,都不该绑进去重第一版。它们依赖外部线路和第三方接口,失败原因和“是不是同一号”完全不是一类。去重先把标识做对,清洗分开,见 号码去重和号码清洗的区别。
第一版做完,用这三份样本验收
- 国内号混写
+86、空格、短横线 - 含英国或泰国本地格式(带前导 0)
- 一份确定和底库重复的“探针号”,看历史重复能不能打上
三份都过,再谈速度和界面。速度问题通常不在哈希比对,而在解析和导入,见 号码快速去重软件为什么慢。
常见问题
没有历史库,只做文件内去重,算不算手机号码去重工具?
算半成品。偶发清洗可以用;营销名单的浪费,多半来自新包撞老客户。第一版可以先做文件内,但表结构要预留库比对,否则三个月后要推倒重来。
功能是写给开发的,还是写给业务的?
两边都要看。业务定“什么叫重复、谁能导出”,开发定“键怎么存、任务怎么断点续跑”。缺一边,上线后一定吵。
可以先看现成系统再写自己的需求吗?
可以。打开 在线 Demo 走一遍导入、状态和三类导出,把缺的项记进自己的清单。要部署到自己环境,通过 Telegram @imchat 联系开通。产品能力总览在 核心功能。