JavaScriptでマルチバイト文字列を決まった長さで省略する方法
投稿日時:
最終更新日時:2015/03/16 20:03
この記事は約 2 分で読めます。
大丈夫、あなたなら出来る!
ソーシャル・マーケティング協会 代表理事の白鳥友康です。
ブログの「続きを読む」みたいなことを、JavaScriptで実現する方法です。
デザインの都合でエリアに入力できる文字数が決まっていて
マルチバイトで○文字分みたいな切り出しをしたい場合があります。
でもマルチバイトとシングルバイトが混合している文字列の場合、
JavaScriptだと、これがなにげに難しかったりしますね。
そんなときはに役立つサンプルスクリプトです。
/**
文字列を省略する
@arg text 省略する文字列
@arg len 半角文字数で指定
@arg truncation 省略時の文字列
*/
function substr(text, len, truncation) {
var count = 0;
var str = '';
for (i=0; i
n = escape(text.charAt(i));
if (n.length < 4) count++; else count+=2;
if (count>len) {return str+truncation;}
str += text.charAt(i);
}
return text;
}
無料プレゼント
【Web担当者向け】SNS集客の全体像を55分で把握できる動画
受講料50万円で提供していた【ソーシャル・マーケティング認定コンサルタント養成講座】のエッセンスを凝縮した動画を無料プレゼントしています。
関連記事
-
-
HTML5のcanvasでランキング描画 – まつぼっくりんご
こうゆうのは後々使うときありますね。canvasはアイディア次第でいろいろと。 HTML5のcanvasでランキング描画 …
-
-
画像置換(text-indent)で出る点線を消したい
text-indent:-9999px; を使った画像置換はFirefox だとクリックした時に画面外へ点線が出てしまう。そんな…
-
-
Yahoo! JAPAN、アドエクスチェンジ(広告枠取引)事業を開始
これはもしや、すごいことなのではないか?? 《広告を掲載したいサイトを指名買いできる》 ということだとしたら、今後の動向をちゃん…
-
-
アンカーリンクをクリックした時にスクロールして移動する
ウェブサイトには、クリックするとページ内の指定の場所に移動する「アンカー」という機能がありますよね。 この機能は、普通に指定する…
-
-
エントリーフォーム最適化(EFO)でお問い合わせの数を増やす。その3
エントリーフォーム最適化(EFO)のポイント、前回の続きです。 目次1 ★魅力的な文章で入力を促す2 ★「クリア」ボタンは必要な…
-
-
Photoshop CS4のオンラインスクールをデジハリが無料で提供
我が卒業校でもあるデジハリが無料でPhotoshop講座を提供しているようです。 ○Photoshopを持っているけど、うまく使…
-
-
同じ本を2冊買ってしまう悩みをお持ちの方にオススメです
私は本を読むの好きで、自宅には未読の本の棚があるのですが、困ったことが1つあります。 それは何冊も同じ本を買ってしまうこと 未読…
-
-
ウェブサイトの出口をしっかり整理する
ウェブサイトは、入口と出口が最も重要です。多くのウェブサイトは、お問い合わせフォームが出口になることが多いですよね。そういったメ…
-
-
これが、最適化されたスマホ版サイトだ。
ホームページのスマホへの対応も無視できないレベルになってきました。画面の大きさ、入力方法の違い、などなど、スマホで閲覧した時に快…
-
-
内部SEO対策:ページタイトル作成における5つの基本
ページタイトルはホームページのテキストの中でも、検索エンジンのロボットが特に重要視している部分です。 ページタイトルを工夫するこ…
