ソーシャル・マーケティング協会 代表理事 白鳥友康の公式ブログ。Facebook、Twitter、YouTube、LINEなど、ソーシャルメディアを活用、集客する方法を無料でお届け。

ソーシャル★マーケティングの教科書 改訂版

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万円で提供していた【ソーシャル・マーケティング認定コンサルタント養成講座】のエッセンスを凝縮した動画を無料プレゼントしています。

ダウンロードはこちら

  関連記事

no image
ホームページ作成用語集:インターネット

世界中のコンピュータを繋いだネットワークのこと。 インターネットに接続することで、電子メールのやり取りやホームページを見ることが…

no image
画像置換(text-indent)で出る点線を消したい

text-indent:-9999px; を使った画像置換はFirefox だとクリックした時に画面外へ点線が出てしまう。そんな…

email icon post sign
エントリーフォーム最適化(EFO)でお問い合わせの数を増やす。その3

エントリーフォーム最適化(EFO)のポイント、前回の続きです。 目次1 ★魅力的な文章で入力を促す2 ★「クリア」ボタンは必要な…

no image
【広告を出すのが怖い】と思ったことがありますか?

「はい」と答えた人はどれくらいいるでしょうか? 結構、多いのではないかと思います。何を隠そう、自分も怖かったですし。 ホームペー…

Zemanta Related Posts Thumbnail
商品画像を拡大して魅せる

この拡大の方法はちょっと面白いかもhttp://www.cecile.co.jp/detail/3/CTCV1E000005/

Zemanta Related Posts Thumbnail
マウスオーバーの魅せ方

中央に三つならんでいる写真にマウスオーバーすると・・・ Ajaxをうまく活用してますね?jQuery使用のようです。

2015-12-09 02.12.13
WebデザイナーにおすすめのiPhoneアプリ21

こりゃ便利! 助かるなぁ。 WebデザイナーにおすすめのiPhoneアプリ21 | Webクリエイターボックス http://w&hellip;

no image
Web手続きだけで自作曲をiTunesで配信、クリプトンが代行サービス

このサービスは、音楽業界に新しい流れを生み出すかも。 ドラマのタイアップやCM曲が売れる現状を見ても音楽は聞いてもらってなんぼ。…

no image
ホームページ色名一覧

ホームページで使う色を16進数で指定するのが難しい人のために慣用名でも指定することが出来るようになっています。 考えた人は偉いで…

Diversity Casual People Web Design Meeting Brainstorming Concept
最も売れるランディングページを作れる人は誰か?

ここ数ヶ月間、ちょこちょことランディングページの調整をさせていただいているクライアント様から、また販売実績のご報告をいただきまし…