直接用 res.data.length 获取剪贴板内容长度,但需先判断 res.data 是否有效;常见为空的原因包括平台拦截、权限拒绝、不可见字符干扰;推荐清洗后(replace + trim)再计算有效长度。

uni.getClipboardData 返回的 data 是字符串,直接用 .length 就行
调用 uni.getClipboardData 成功后,res.data 就是剪贴板当前内容(类型为 string),所以获取长度最直接的方式就是 res.data.length。但别急着写,得先确认它真有值——很多“长度为 0”其实是读取失败或内容为空,不是字符数真为零。
为什么 res.data.length 常常是 0?三个典型原因
不是 API 不工作,而是平台策略或数据本身导致你拿到空字符串:
- 在
onLoad、onShow或定时器里静默调用 → iOS/Android 都会拦截,返回data: "" - 用户首次拒绝过剪贴板权限 → 后续调用仍返回空,且不弹新提示,需引导去系统设置手动开启
- 剪贴板里实际存的是不可见字符(比如微信转发带的
\u200b零宽空格)→"\u200b".length === 1,但"\u200b".trim().length === 0,看着像空,实则不是
安全获取长度的写法:先清洗再算
真实场景中,你要的往往不是“原始长度”,而是“有效内容长度”。比如提取邀请码时,得先剔除干扰字符再判断是否达标(如 6–12 位)。推荐这样写:
res.data











