長い文字を「...」で省略する方法(Ruby・Rails・JavaScript)

【結論】

・文字を省略したい場合、Railsであれば、truncateメソッドを利用する方法がある

Rubyであれば、範囲オブジェクトで文字の範囲を指定して、表示をさせる事

JavaScriptの場合は、slice() メソッドで文字の省略が可能

【目次】

【本題】

文字数を省略させたいケース

無制限に文字が表示されてしまうと、レイアウトが崩れてしまうので、表示させる文字数を制限したい事が多々あります。

そういった場合に、利用出来る手法をいくつか紹介します。

Railsの場合(truncateメソッド)

Railsの場合、truncateというメソッドで、表示させる文字サイズを指定する事が可能です。

#()内に表示したい文字数を指定
str = "abcdefg"
str.truncate(6)
=> "abc..."
#()内に表示したい文字数を指定
str = "abcdefg"
truncate(str, length: 6)
=> "abc..."

http://railsdoc.com/references/truncate

Rubyの場合(範囲オブジェクト)

Rubyの場合、範囲オブジェクトで文字数を指定する事が可能です。

#[]内に表示したい文字数を指定
str = "abcdefg"
str[3]
=> "abc"

JavaScriptの場合(slice メソッド)

JavaScriptの場合、sliceというメソッドで、表示させる文字サイズを指定する事が可能です。

#()内に表示したい文字の範囲を指定
str = "abcdefg"
str.slice(0,2)
=> "abc"

String.prototype.slice() - JavaScript | MDN

参考情報

Rails - 長い文字列を省略して表示する - Qiita

【JavaScript】長い文章の文末を省略して末尾に「…」を表示させる方法 – 株式会社シーポイントラボ | 浜松のシステム・RTK-GNSS開発