[英]Ruby on Rails: How can i take/cut first 300 words or characters from a string?
我需要從字符串中刪除/剪切前300個單詞或字符。
這意味着,從一開始我就需要字符串中有限數量的字符。
截斷的東西。
有這個功能嗎?
str = "many words here words words words ..."
first_500_words = str.split(" ").first(500).join(" ")
first_500_chars = str[0..500]
根據文本大小和性能需求,一個選項是@text.split(/\\s+/).slice(0,300).join(' ')
如果你真的想截斷字符級別,這是可取的,因為不同的字在顯示長度上有很大不同,請使用:
def truncate_words(text, length = 300, end_string = ' …')
words = text.split()
words[0..(length-1)].join(' ') + (words.length > length ? end_string : '')
end
我在這里找到了: http : //snippets.dzone.com/posts/show/804
如果你正在使用Rails,你也可以使用string.truncate
但它沒有考慮單詞邊界。
str = "this is really long string which I want to truncate..."
str.truncate 300, separator: " "
或者如果你喜歡你的括號
str.truncate(300, separator: " ")
這是上述所有方案中最優雅的解決方案。 正如您在主題中提到的,您使用Rails以便它可以工作。 如果您使用原始Ruby編寫代碼,則應該編寫如下代碼:
str.split.first(300).join " "
如果需要按空格分割文本,則split
方法不需要參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.