函数.capitalize
将字符串的第一个字符设置为 upcase ,并将所有其他字符设置为 downcase 。
大写字符串中的每个单词
"my Name is MARC".split(" ").map{|word| word.capitalize}.join(" ")
# => "My Name Is Marc"
我需要一个similair函数,我可以 downcase 所有字符,但保留第一个字符不变。因此,除了第一个字母保持不变外,每个字都会掉下来。
"my Name is MARC".some_function
# => "my Name is Marc"
答案 0 :(得分:7)
高级正则表达式:positive lookbehind
"My name is MARC".gsub(/(?<=\w)\w+/) { |s| s.downcase }
#=> "My name is Marc"
更短(由@falsetru建议):
"My name is MARC".gsub /(?<=\w)\w+/, &:downcase
#=> "My name is Marc"
答案 1 :(得分:6)
使用正则表达式(String#gsub
):
"My name is MARC".gsub(/\w+/) { |x| x[0] + x[1..-1].downcase }
# => "My name is Marc"
x[0]: To keep the case of the first letter of each word.
x[1..-1].downcase: To change the case (excpet the first letter)
答案 2 :(得分:0)
您可以使用titleize
- here但我不知道您的案例中的Marc是否是模型的属性且字符串只在视图中。当你把资本放在Marc上时,有点困惑