簡體   English   中英

Ruby on Rails:如何從字符串中刪除/剪切前300個單詞或字符?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM