gitmoji-commit-workflow icon indicating copy to clipboard operation
gitmoji-commit-workflow copied to clipboard

当前使用的 gitmoji unicode 正则不支持 UCS-4

Open SigureMo opened this issue 4 years ago • 3 comments

当前使用的 Emoji Unicode 正则并不支持诸如 ♻️ ⬆️ ⚡️ 这样的 UCS-4 字符。

比如在 StackOverflow 的这个问题中不仅考虑了当前的 UCS-2(和现在所用的正则较为相似),还考虑到了 UCS-4 的正则。但我并不清楚 JS 中如何能实现 UCS-4 正则。另一方面,这个正则也只适用于 Unicode 8.0,而现在已经 Unicode 13.1 了,所以使用某些持续更新的库也许会是更好的方案。

不过,我们还可以利用 Gitmoji 字符少的优势,正则里穷举所有 Gitmoji 即可,示例

由于 JS 会将 UCS-4 字符视作两个字符,所以 [🎨🔥🐛🚑✨♻️⬆️⚡️] 是不可行的,🎨|🔥|🐛|🚑|✨|♻️|⬆️|⚡️ 这样则是一种简单易行的方案。当然,这个正则使用动态生成应当会更好一些(虽然现在 64 个字符不算多,但一旦发生改动,改起来也挺麻烦的)。

SigureMo avatar Mar 06 '21 12:03 SigureMo

所以使用某些持续更新的库也许会是更好的方案

有推荐吗?我没有找到合适的库

arvinxx avatar Mar 07 '21 03:03 arvinxx

由于 JS 会将 UCS-4 字符视作两个字符,所以 [🎨🔥🐛🚑✨♻️⬆️⚡️] 是不可行的,🎨|🔥|🐛|🚑|✨|♻️|⬆️|⚡️ 这样则是一种简单易行的方案。当然,这个正则使用动态生成应当会更好一些

这个方案我想想怎么做吧,可以基于 gitmoji 的 json 做自动生成,拼接下估计就可以

arvinxx avatar Mar 07 '21 03:03 arvinxx

所以使用某些持续更新的库也许会是更好的方案

有推荐吗?我没有找到合适的库

我试了下,emoji-regex 是可以检测 UCS-4 字符的

SigureMo avatar Mar 07 '21 04:03 SigureMo

已修复,尝试 [email protected]

arvinxx avatar Feb 10 '23 16:02 arvinxx