使用方法
打开页面时标签框已经填好一组 31 条含重复标签的示例,caption 长度填的是 180,发布位置默认是 Feed,因此不必先输入就能看到一份完整的校验报告。想校验自己的内容,把标签串粘进文本框:空格、逗号、中文逗号、分号、换行乃至 # 本身都可以当分隔符,写「#travel #food」和写「travel, food」都能解析。文本框按 Ctrl/Cmd + Enter 触发校验,也可以边输入边看卡片实时刷新。caption 正文长度是数值框,按裸 Enter 即重算,允许 0~10000;发布位置用下拉框选 Feed、Reels、Story 或评论,切换后立即按对应上限重算。留空、填非数字、填负数、超量程、标签含非法字符,都会给出具体报错文字,不会静默当成 0 条继续出结论。
校验完成后给出四样东西:六张卡片报「原始条数 / 去重条数 / 重复条数 / 最长标签 / 标签串长度 / caption+标签总长」;报告区带 role="alert",逐条列出通过、超限、建议与边界;清理后标签串可直接复制;下方 12 行规则对照表可导出带 BOM 的 CSV 或按 TSV 复制。三个「示例」按钮分别载入短例、31 条示例与 35 条超限例,方便对比不同情形。
要先把定位说清楚:Instagram话题标签数量指南是平台规则校验器,回答「这组标签有没有违反当前平台的硬性规则」,不是又一个数标签个数的统计器。它只按写死的规则常量判断条数、字符数、字符集与重复,不判断标签好不好、相不相关、会不会被限流。
这个工具能解决什么问题
发帖、发 Reels 或 Story 之前,最常见的三类翻车是:标签堆太多越过上限、caption 正文加标签一起越过 2200 字符、标签里混进了空格或标点。本页把这三类一次性自查完,并顺带把重复标签去重后真正生效的条数算出来,避免「我明明写了 31 个」和「实际只有 27 个」之间的误会。它还会提醒一个常被忽略的口径:30 是硬上限,不是目标,把标签堆到 30 个反而不利于触达,平台建议的是 3~5 个高相关标签。
第二个用途是把哪些事本页做不了讲明白。被平台限流的违规标签(banned hashtag)必须联网查询平台实时名单才能判断,本页纯前端不联网,不能判断,也不承诺检测违规标签;标签热度、相关性、是否蹭热点同样不判。平台规则也可能随时间调整,本页用的是当前公开的一版常量,不联网取实时值。Instagram话题标签数量指南只回答「按这版规则,我这组标签在条数、字符数、字符集上是否合规」;它不生成标签、不翻译、不查重名、不替代平台自己的提示。
与站内已有的标签统计、标签提取类工具不同,本页回答的是「有没有踩线、踩了哪条线」,所以报告把每条规则的结论单独列出,而不是只丢一个总数。
校验原理与规则变量
规则常量一共六个:Feed 最多 30 个标签、Reels 同样 30、Story 10、评论建议 5、caption 最多 2200 字符、建议标签数 3~5 个。发布位置决定本次用哪个条数上限:Feed/Reels 取 30,Story 取 10,评论取 5;caption 的 2200 则与位置无关,任何场景都适用。
解析分四步。第一步按 /[\s,,;#]+/ 切开原始串,得到候选片段。第二步把每个片段开头的 # 去掉、去掉首尾空白、统一转成小写,因为标签大小写不敏感,#Travel 与 #travel 是同一个标签;空片段丢弃。第三步顺序扫描去重:第一次出现记入有效列表,再出现就记入重复列表。第四步用正则 /^[A-Za-z0-9_]+$/ 检查每个有效标签——只允许字母、数字、下划线,# 只作前缀不参与匹配,含空格、中文、连字符或标点的一律判为非法并具体列出。
统计口径也固定下来:清理后标签串是 '#' + 有效标签.join(' #'),它的长度 tagLen 包括每个 # 与中间的一个空格;总长 total = captionLen + tagLen,因为标签字符计入 caption 的 2200。最长标签按标签名长度(不含 #)取最大值。最后两条判断是 有效条数 > 平台上限 与 total > 2200,任一为真就报超限;有效条数超出建议 3~5 时再补一条建议,全是整数计数与字符串处理。
完整示例(三组复算)
- 31 条含重复(默认示例):原始 31 条,去重后 27 条、重复 4 条、非法字符 0 个;最长标签 10 字符,标签串 198 字符;caption 180 + 标签 198 = 378。条数 27 ≤ 30、总长 378 ≤ 2200,两项都通过,但 27 个远超建议的 3~5 个,报告给出「偏多」建议。
- 短例:
#travel #travel #food #summer #food #beach原始 6 条、去重 4 条,清理后标签串为#travel #food #summer #beach,长度 28 字符;4 个正好落在建议 3~5 区间内,是最贴近推荐做法的一组。 - 超限例:35 个不重复标签配 caption 2100,去重 35 条、标签串 235 字符,2100 + 235 = 2335。于是 35 > 30 触发条数超限,2335 > 2200 触发 caption 超限,两条 [超限] 同时出现。
这三组数字都不是写死的答案,而是把对应的标签串与 caption 长度代入同一套解析与规则判断现算出来的。点三个示例按钮可以逐组回放;把任意一组里的标签删掉几个、把 caption 调大一点,卡片与报告会立即重算。注意短例里连续多个空格不会多算标签——分隔符是被压缩处理的,这也是为什么它仍只有 6 条原始片段。
输入范围与规则对照表
规则对照表把 14 条规则列成三列:规则项、取值或要求、说明。默认显示前 12 行,点「加载更多」展开最后 2 行(30 是硬上限的定位、以及可用的分隔符清单)。前 12 行覆盖 Feed 30、Reels 30、Story 10、评论 5、caption 2200、建议 3~5、单标签字符集、重复去重、banned 需联网本页不判、标签计入 caption、# 只作前缀、大小写不敏感。
这张表是常量说明,不是当前输入的实算结果;随输入变化的是上方六张卡片、校验报告与清理后标签串。表可导出带 BOM 的 CSV,Excel 打开不乱码,也可按 TSV 复制粘进表格软件。标签框不限标签条数,但 caption 数值框限 0~10000;含不可见控制字符、只写分隔符不写标签名、标签含非法字符,都会给出具体报错。
结果边界与精度说明
- 违规标签不在本页能力内。banned hashtag 需要联网查询平台实时名单,本页纯前端不联网,不能判断,也不承诺「检测违规标签」;报告里把这一条单独标为边界。
- 30 是硬上限不是目标。Feed/Reels 最多 30 个,但堆到 30 反而不利;建议 3~5 个高相关标签,超出时报告给的是「建议」而不是「超限」。
- 标签字符计入 caption。总长按 caption + 清理后标签串计算,标签里的
#与分隔空格都算字符,不要只数正文就以为没超 2200。 - 去重会让有效数下降。重复标签只保留第一次出现,31 条去重成 27 条就是例子;判断上限用的是去重后的条数,不是原始条数。
- 单标签字符集很窄。只允许字母、数字、下划线;
#只作前缀,含空格、标点、中文或连字符的片段会被判非法并列出名字。大小写不敏感,已统一小写后去重。 - 分隔符约定。空格、逗号、中文逗号、分号、换行与
#都能分隔;连续分隔符被压缩,不会凭空多出标签。 - 规则会过期。以上常量按当前公开规则写死,不联网取实时值;平台调整上限后请以官方说明为准。
- 没有浮点舍入。全是整数条数与字符数,结果精确到个位;纯本地计算,不发起网络请求,也不写 Cookie 或本地存储。
常见问题
这个页面能查出被限流的违规标签吗?
不能。banned hashtag 需要联网查询平台的实时名单才能判断,本页是纯前端工具,不发起任何网络请求,因此明确不判断、也不承诺检测违规标签。报告里专门有一行 [边界] 写明这一点。本页能查的只有条数、caption 总长、单标签字符集与重复这些可离线校验的硬规则。
既然上限 30,为什么还建议只放 3~5 个?
因为 30 是平台允许的最大条数,是硬上限而不是推荐值。把标签堆满 30 个往往相关性被稀释,反而不利于触达;平台建议 3~5 个高相关标签。本页把「超过 30」报成 [超限],把「超过建议 3~5」报成 [建议],两者严重程度不同,别把建议当成报错。
标签字符算进 caption 的 2200 吗?
算。总长按 caption 正文长度加清理后标签串长度计算,标签串里的每个 # 与中间空格都算字符。所以 31 条示例的 caption 180 加标签 198 得 378;超限例的 2100 加标签 235 得 2335,越过 2200。只数正文不数标签,很容易误判为没超。
我写了很多标签,为什么实际条数变少了?
因为重复标签被去重了。解析时每个标签只保留第一次出现,后面重复的记入重复列表;判断上限用的是去重后的有效条数。默认 31 条里有 4 条重复,去重后是 27 条,卡片把原始、去重、重复三个数并列出来,就是为了让这个差异看得见。
标签里能有空格、中文或标点吗?
不能。单个标签只允许字母、数字与下划线,用正则 /^[A-Za-z0-9_]+$/ 校验;# 只作前缀,不参与匹配。含空格、中文、连字符或标点的片段会被判为非法标签,并在报错里列出具体名字,方便你逐个改掉。注意分隔是靠空格、逗号、换行等符号完成的,标签内部不能再有空格。
Feed、Reels、Story、评论的上限一样吗?
不一样。Feed 与 Reels 都是 30 个,Story 是 10 个,评论建议 5 个;caption 的 2200 字符则与位置无关。用页面上方的「发布位置」下拉框切换,报告会按对应的条数上限重新判断,同一组标签在 Feed 下通过、在 Story 下就可能超限。
大小写不同的标签算一个还是两个?
算一个。Instagram 标签大小写不敏感,本页解析时先把标签名统一转成小写再去重,所以 #Travel 与 #travel 会合并成同一个,清理后标签串也统一输出小写。这样做既符合平台口径,也避免同义标签被重复计入有效条数。
规则会不会过期?输入会被上传吗?
规则常量按当前公开的一版写死在页面里,不联网取实时值,平台调整后请以官方说明为准。输入内容不会被上传:解析、去重、正则校验与计数全在当前浏览器执行,页面不发起网络请求,也不写 Cookie 或 localStorage,关掉页面数据也不留存。