如何在 Ruby on Rails 中将字符串中每个世界的首字母大写:
"goyette-xyz-is wide road".titleize returns "Goyette Xyz Is Wide Road".
我想要这样的输出:
"goyette-xyz is wide road".SOME-FUNCTION should return "Goyette-xyz-is Wide Road".
titleize 删除了下划线和连字符,但我想将其保留在字符串中。
最佳答案
你可以像这样使用.titleize
“我想把每个作品的第一个字母变成一个大写字母”.titleize
您可以了解更多关于 titleize 的信息来自 apidocks
titleize(word) 公共(public)
将所有单词大写并替换字符串中的一些字符以创建更美观的标题。 titleize 用于创建漂亮的输出。它不用于 Rails 内部。
titleize 也被称为 as titlecase。
例子:
"man from the boondocks".titleize # => "Man From The Boondocks"
"x-men: the last stand".titleize # => "X Men: The Last Stand"
"TheManWithoutAPast".titleize # => "The Man Without A Past"
"raiders_of_the_lost_ark".titleize # => "Raiders Of The Lost Ark"
这个现实是如何运作的
# File activesupport/lib/active_support/inflector/methods.rb, line 115
def titleize(word)
humanize(underscore(word)).gsub(/\b('?[a-z])/) { $1.capitalize }
end
为了在作品中实际保留“-”,我们可以像这样向字符串类添加一个新方法。
# ./lib/core_ext/string.rb
class String
#"goyette-xyz-is wide road".titleize_with_dashes#=> "Goyette-xyz-is Wide Road"
def titleize_with_dashes
humanize.gsub(/\b('?[a-z])/) { $1.capitalize }
end
end
关于ruby-on-rails - 如何将字符串中每个单词的首字母大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19154369/