絵文字の考察 ~国旗~
 国旗が文字で綴れるって素敵なことだと思います。
 しかも、連結文字の仕様もセンスが溢れています。

🇯🇵🇺🇸🇰🇷🇨🇳🇰🇵
🇩🇪🇳🇴🇨🇦🇬🇧🇦🇺
🇦🇨🇧🇲🇨🇰🇫🇯🇫🇰
🇹🇻🇮🇪🇲🇫🇨🇮🇹🇩
🇦🇩🇮🇨🇹🇫🇼🇫🇹🇷
位置合わせの工夫
・letter-spacing: 1rem → 0
・.75rem .5rem .75rem 1.5rem
 → .75rem 1rem (padding)
・flags span padding: 0 .5rem



 💙ここ以外の考察:~文字取得~ | ~麻雀牌~

 💙絵文字の考察 ~国旗~

 上の国旗は画像じゃなくて文字です。それらは(🇺🇸)みたいに小さいから親の要素のCSSで拡大しています。通常の漢字や は2バイトになるし、💙💛💗などは4バイトになるのですけれど国旗は連結文字で8バイトになるの。🇯と🇵で🇯🇵になるし、🇺と🇸で🇺🇸になるわ。

 その国旗の連結の文字は🇦から🇿の26字です。uniCodeでは U+1F1E6 - U+1F1FF になるのですが、中途半端な開始位置は領域割り当てでブロックの最後に合わせた感じがします。連番だから便利ですよね。連結文字から国コードを求めるのも簡単にできそうです。

 💙国旗からの国コードの抽出
 ・ofs = 0x1f1e6 - 0x41;
 ・s = /([\ud83c][\udde6-\uddff]){4}/g または /([\u{1f1e6}-\u{1f1ff}]){2}/g
 ・cc = String.fromCharCode(s.codePointAt(0)- ofs, s.codePointAt(2) - ofs);

 💙U+1F1(E6-FF)の総当たりで国旗の求め方
 ・0-25の2重ループ
 ・オフセット:st = 0x1f1e6
 ・国コード:String.fromCharCode(0x41 + i, 0x41 + j)
 ・連結文字:\x26#${st + i};\x26#${st + j}
 ・連結して国旗になる場合はoffsetWidthが変化
 ・国コード一覧の生成:現在258の国々
  → もしも下のリストの個数に変化があれば情勢がが変化しています。

#ccPar 有効な国コード抽出結果:0


 💙全ての国々のコードが求められたなら総当たりのルーブを通す必要がないわ。こんどはそのリストから下の領域に国旗を表示してみます。タグ入れしてイベントを付けました。リストは抽出されたものだから単にmatch(/[A-Z]{2}/g )for ofを回せばいいわね。

 💗登録された全ての国旗を表示 | 白紙にする

そのまま | ABは小さく | ABは非表示 | 元の状態に戻す
🇦🇷🇦🇺🇯🇵🇦🇧🇺🇸🇵🇷

 🇦から🇿の総組み合わせが上で分かると思います。2文字ずつspanに入れていますから全て表示された後に、それぞれのoffsetWidthを比較すれば国旗として認識したかどうかが分かります。その有効な組み合わせを纏めたものが少し前のccPar配下にあるテキスト領域です。ひとたび国コードのリストが生成されれば上のリストは必要ないのですが、新たな国が増えないとは限りないし、処理の参考の為に残すことにします。

 💙国旗の間隔と改行のこと。
 ・🇦🇷🇦🇺🇺🇸🇵🇷 文字としてはこんな感じです。小さくて左右ぴったりです。
 ・🇦🇷🇦🇺🇺🇸🇵🇷 font-size:3rem; line-height:3rem;
 ・文字を大きくすると行送りも広がるのでそれも指定。でも文字間隔がダメです。
 ・🇦🇷🇦🇺🇺🇸🇵🇷 font-size:3rem; line-height:3rem; letter-spacing:.5rem;
 ・普通は国旗が連続しているとき空白が無い場合は改行されません。
 ・spanの中に入れてfont-size:3rem、親にfont-size:0 を入れ、直後に空白を入れています。親サイズはゼロだからspanの余白で文字間隔を合わせています。

 💙関数の実装 : テスト