絵文字を判定する正規表現
以下の記事の最初だけを読んで
/\p{Emoji}/u.test("😃");
みたいに書けば良いのかなぁと思ったらそうではなかった。
読み進めるとこんな風に書きましょう、というのが出てくる。
/\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F/gu;
で、 unicode.org にある emoji-data ってのを見てみた。
http://unicode.org/Public/emoji/12.0/emoji-data.txt
0..9 が入ってる。
0030..0039 ; Emoji # 1.1 [10] (0️..9️) digit zero..digit nine
1 がどうなるか試してみる。
> /\p{Emoji}/gu.test("1") true
おー!たしかに。
> /\p{Emoji}/gu.test("あ") false
「あ」だとちゃんと false になる。
提案されているやつで 1 を試す。
> /\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F/gu.test("1") false
ちゃんと false になった。