文字列を書記素クラスタに分割する
Scrapboxでこの辺りの問題を解決するために必要
国旗の絵文字の構成文字がそのまま表示される例 (JPに分かれて表示される)
http://gyakky.daiiz.org/svgyazo/ae4ea66174048502b2a57bc2fc448bbe.svg
http://gyakky.daiiz.org/svgyazo/6061262810274502f68a04e4f1dbd732.svg
書記言語において意味上の区別を可能にする最小の図形単位
書記素クラスタ とは、 Unicodeにおいて自然な“1文字”を表す単位です。 Unicode による文字の一部は複数のコードポイントから構成 (例: U+0061 U+0301 á) されますが、書記素クラスタを用いると、これを1文字ごとに分割することができます。 書記素クラスタに分解するnpmを探そう
分解さえできれば文字列長=分割後の要素数といえる
書記素クラスタ (grapheme cluster) 関連のnpmこれしか見つからなかった
使ってみる
日本の国旗の例
code:js
const gs = new GraphemeSplitter()
for (const c of gs.splitGraphemes('🇯🇵のbest🍣')) {
console.log(c)
}
http://gyakky.daiiz.org/svgyazo/65aeb84dd6d8315de2d9f1bb81bc5c70.svg
いけた
クメール語の例
http://gyakky.daiiz.org/svgyazo/379c992749b1fa877815cc5ca4a4bda0.svg
微妙に失敗している
所々/forumでの塩澤先生のキャプチャと違う
♀のような形状の文字は表示されないはず
気になるshokai.icon