JavaScript中如何使用类#符号避免split('#')拆分完整字符串
问题解决方案
你可以通过以下两类方案实现需求:
方案1:使用视觉近似的非U+0023 Unicode字符(适用所有字符串场景)
以下字符视觉上和半角#几乎无差异,本身Unicode编码不是\u0023,不会被split('#')识别拆分:
- 全角井号「#」:Unicode编码为
\uff03,仅比半角#略宽,普通排版场景下基本无法分辨差异 - 音乐升号「♯」:Unicode编码为
\u266f,形状和#高度一致,仅整体高度略高于普通半角#
验证代码
// 全角井号测试 const str1 = "Enter #time to check time"; console.log(str1.split('#')); // 返回:["Enter #time to check time"] // 音乐升号测试 const str2 = "Enter ♯time to check time"; console.log(str2.split('#')); // 返回:["Enter ♯time to check time"]
方案2:纯前端渲染场景的1:1还原方案
如果你的使用场景是前端页面展示,要求字符和半角#视觉完全一致,还可以用span标签包裹普通#,配合自定义属性存储完整字符串,拆分时直接取自定义属性的完整内容即可,无需修改原始字符。
内容的提问来源于stack exchange,提问作者Deepak Terse
相关产品推荐
相关产品推荐

