国家代码标记表情符号
与其显示无聊的国家代码(例如 US、CH、NL),不如显示国旗表情符号 🇺🇸 🇨🇭 和 🇳🇱 更美观,对吧?用 JavaScript 实现起来并不难。
function getFlagEmoji(countryCode) {
const codePoints = countryCode
.toUpperCase()
.split('')
.map(char => 127397 + char.charCodeAt());
return String.fromCodePoint(...codePoints);
}
国旗表情符号是两个 unicode 区域字符的组合,位于127462
字母 A 的 unicode 位置。对于 CH(瑞士),我们希望索引为127464
和127469
。
了解这个小函数中发生的事情;
- 首先,将国家代码输入大写,以确保我们获得正确的字符位置。
- 拆分成一个数组,并迭代每个字符。
- 我们可以使用 来获取字符的 UTF-16 代码索引
charCodeAt
。UTF-16 A 位于65
,我们从区域 A 字符索引 中减去了该值127462
,这解释了硬编码127397
值 (127462 - 65
)。为了获取正确的旗帜表情符号索引,我们只需将接收到的索引添加到偏移量即可。 - 最后,该
String.fromCodePoint
函数将返回计算索引的表情符号字符。
getFlagEmoji('US') = 🇺🇸
getFlagEmoji('NL') = 🇳🇱
getFlagEmoji('CH') = 🇨🇭
无需额外资源即可立即标记!
文章来源:https://dev.to/jorik/country-code-to-flag-emoji-a21