文字列を任意の文字数で丸める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/
-
前の記事
AtomicDesignに挑戦した所感 ~Storybookの利用~ 2019.06.11
-
次の記事
AtomicDesignに挑戦した所感 ~特定機能に対する個別スタイル指定~ 2019.06.19