文字列を任意の文字数で丸めるjavaScript

文字列を任意の文字数で丸めるjavaScript

str・・・文字列
len・・・数値

◆文字列を任意の文字数で丸める

function truncateText(str, len) {
    return str.length <= len ? str : str.substr(0, len) + '...';
}

◆文字数を半角は1文字、全角は2文字として計算し丸める

// 文字列を任意の文字数で短縮する
function truncateText(str, len) {
    let result = 0;
    let text = '';
    for (let i = 0; i < str.length; i++) {
        let chr = str.charCodeAt(i);
        if (
            (chr >= 0x00 && chr < 0x81) ||
            chr === 0xf8f0 ||
            (chr >= 0xff61 && chr < 0xffa0) ||
            (chr >= 0xf8f1 && chr < 0xf8f4)
        ) {
            //半角文字の場合は1を加算
            result += 1;
        } else {
            //それ以外の文字の場合は2を加算
            result += 2;
        }
        if (result <= len) {
            text += str[i];
        } else {
            text += '...';
            break;
        }
    }
    return text;
}

参考サイト

コピペで使える JavaScript逆引きリファレンス
[JavaScript] 半角は1文字、全角は2文字として文字数をカウントする
https://javascript.programmer-reference.com/javascript-han1zen2/