ev.currentTarget.value.length
のように文字数をカウントすると絵文字や「𩸽」などの文字を正確にカウントできません。
以下のように記述するとtextareaに入力された文字数を正確にカウントできます。
export default function TextArea() {
return (
<textarea
onChange={(ev) => {
const segmenterJa = new Intl.Segmenter('ja-JP', { granularity: 'grapheme' })
const segments = segmenterJa.segment(ev.currentTarget.value)
console.log(Array.from(segments).length)
}}
/>
)
}