如果字符串的长度超过...
,我想在字符串中添加省略号N
。例如,对于N = 11
,
ellipse_if_necessary('Hello') # => "Hello"
ellipse_if_necessary('Hello world, how are you') # => "Hello world..."
最简单的方法是什么?
答案 0 :(得分:2)
"some string".sub(/(.{31,})/, '\1...')
答案 1 :(得分:0)
你可以使用quick-if:
来完成string.length > 30 ? string[0..30]+'...' : string
使用if语句的更多“ruby方式”:
string = string[0..30] + '...' if string.length > 30
在第二个例子中,如果字符串短于或等于30个字符,那么它就不会受到影响。
或其他方式(如@marimaf所指出的)是使用truncate
方法:
string.truncate(30)
答案 2 :(得分:0)
我的第一个想法是
"#{string[0..30]}#{'...' if string.length > 30}"
但@Macmee的第一个快速 - 如果看起来非常好,我想这比我的提议便宜。
答案 3 :(得分:0)
有一种rails方法可以满足您的需要,称为truncate
就像这样,假设N = 5:
"some string".truncate(5)
=> "so..."
请注意,在此N = 5
中,它包含省略号字符,因此您所描述的示例可能需要N + 3
。