【JavaScript】全角文字を2文字、半角文字を1文字としてカウントする方法

JavaScriptにおいて、文字列の長さを正確に計算することは、さまざまなアプリケーションで重要な役割を果たします。
特に、日本語などの全角文字と半角文字が混在する場合、これらを適切にカウントする必要があります。
この記事では、JavaScriptで全角文字を2文字、半角文字を1文字としてカウントする方法を紹介します。

全角文字を2文字、半角文字を1文字としてカウントする関数の実装

function countCharacters(str) {
    let count = 0;
    for (let i = 0; i < str.length; i++) {
        const codePoint = str.codePointAt(i);
        if (codePoint >= 0x10000 && codePoint <= 0x10FFFF) {
            count += 2; // 全角文字
        } else {
            count += 1; // 半角文字
        }
    }
    return count;
}

const text = "あいうえおABCDE";
console.log(countCharacters(text)); // 出力: 12

この関数は、文字列を一文字ずつ走査し、Unicodeコードポイントを取得して、その値に基づいて全角文字と半角文字を区別し、カウントします。最終的に、全角文字を2文字、半角文字を1文字として合計の文字数を返します。

まとめ

JavaScriptで全角文字を2文字、半角文字を1文字としてカウントする方法を学びました。この方法を使用することで、文字列の長さを正確に計算し、文字列操作をより効果的に行うことができます。