はじめに Unicodeは、世界で使われる文字を利用できるようにすることを目的としています。 そのため、ラテン文字はもちろん、漢字、ハングル、キリル文字、タイ文字、(なんと!)絵文字までもがコード化されています。 一方、JavaScript(ECMAScript2018)ではUnicodeの文字プロパティにマッチングする正規表現の書き方が取り入れられます。 関連:https://github.com/tc39/proposal-regexp-unicode-property-escapes Unicodeの文字プロパティとは、Unicodeの規格で定められた各コードポイントの属性のことです。 まず簡単に見せると、以下のようなことができるようになります。 // 絵文字が含まれているかチェックする /\p{Emoji}/u.test("😃"); // → true /\p{Emoji}/u.