零宽连字符号
零宽连字
在掘金上看到一篇讲 JavaScript 字符串截取的文章 掘金:【JavaScript文本截取】该死的Emoji表情,里面提到了一个组合字符,以前不知道这个知识,初次看到感觉也挺有意思的,顺便在自己做的字符串转 Unicode/HTML 实体的小工具上做了下实验,并把转换后的 HTML 实体字符放入 HTML 内容中实际查看了下结果。
然后我发现在页面上显示的确实是组合字符,但是开发者工具中 Element
栏内,却显示的是两个分开的字符,中间以 ‍
连接。而这个中间的连字符我原本应该输入的是 ‍
才对。我猜测应该类似于 <
>
这些具有名称的实体。所以就搜索了下 ‍
,然后就在维基百科内找到了 零宽连字
这一条目。
实际看下来,感觉挺有趣的,所以就把这个零宽连字记一下。
根据维基百科的描述,零宽连字就是把前后两个字符组合成一个具有连字效果的字符,当然前提是前后两个字符确实是可以组合的,不然的话并不会出现连字效果。
比如我看到的这篇掘金文章中提到的组合:
1 | // 👩 + 🦱 = 👩🦱 |
在 HTML 中也可以这么写:
1 | <p>👩‍🦱</p> <!-- 👩🦱 --> |
👩🦱
再比如维基百科上的例子:
1 | // 👨 + 👩 + 👦 = 👨👩👦 |
1 | <!-- ‍ 用码点实体就是 ‍ --> |
👨👩👦
但是如果是本身不具有连字效果的两个字符的话,并不会有什么强加的连字效果:
1 | 'Y\u200dY' // YY |
1 | <p>Y‍Y</p> |
YY
参考链接
- 掘金:【JavaScript文本截取】该死的Emoji表情
- Wiki: 零宽连字