首页 > 解决方案 > 如果表情符号是国旗,则使用正则表达式检测

问题描述

我一直在尝试制作一个可以检测表情符号是否是国旗的正则表达式。我希望正则表达式匹配所有国旗(从阿森松岛到津巴布韦)。

我的方法是将所有国旗一一放入正则表达式中。我希望有人能告诉我一个更好的方法。

标签: javascriptnode.jsregexpcre

解决方案


国旗表情符号对应于识别国家/地区的一对本地符号(两个字母)(例如,FR 代表法国 -见列表)。您可以做的是使用匹配这些字母的任意组合的正则表达式。当然,这将包括不存在的国家代码(例如 ZZ),但这应该排除任何其他表情符号。

所以这里是:

var reg = /[\uD83C][\uDDE6-\uDDFF][\uD83C][\uDDE6-\uDDFF]/;
reg.test(""); // false
reg.test(""); // true

推荐阅读