/** * 获取文本显示长度,中文算2个字符 * @param text * @returns */ export function getTextDisplayLen(text: string) { let len = 0 // 使用 Unicode 属性匹配:汉字(Han)、平假名(Hiragana)、片假名(Katakana)、韩文(Hangul) // 需要 JS/TS 环境支持 Unicode property escapes (/\p{...}/u) const doubleCharRegex = /[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}]/u for (let i = 0; i < text.length; i++) { const char = text[i] if (doubleCharRegex.test(char)) { len += 2 } else { len += 1 } } return len }