kas*_*hif 13 ruby rubygems ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2
如何在Ruby on Rails中将字符串中每个世界的第一个字母大写:
"goyette-xyz-is wide road".titleize returns "Goyette Xyz Is Wide Road".
Run Code Online (Sandbox Code Playgroud)
我希望输出像:
"goyette-xyz is wide road".SOME-FUNCTION should return "Goyette-xyz-is Wide Road".
Run Code Online (Sandbox Code Playgroud)
titleize删除下划线和连字符,但我想将其保留在字符串中.
MZa*_*oza 42
你可以使用.titleize 这样的"i want to make the first letter of each work into a cap".titleize
你可以从apidocks 了解更多关于标题化的信息
标题化(单词)公共
将所有单词大写并替换字符串中的某些字符以创建更好看的标题.titleize用于创建漂亮的输出.它不用于Rails内部.
titleize也像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"
Run Code Online (Sandbox Code Playgroud)
这种现实如何运作
# File activesupport/lib/active_support/inflector/methods.rb, line 115
def titleize(word)
humanize(underscore(word)).gsub(/\b('?[a-z])/) { $1.capitalize }
end
Run Code Online (Sandbox Code Playgroud)
实际上在作品中保留" - "我们可以像这样在字符串类中添加一个新方法.
# ./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
Run Code Online (Sandbox Code Playgroud)
您可以自己实施适当的方法:
class String
def my_titleize
split.map(&:capitalize).join(' ')
end
end
"goyette-xyz-is wide road".my_titleize
#=> "Goyette-xyz-is Wide Road"
Run Code Online (Sandbox Code Playgroud)