使用rails 4,并且在这方面找不到文档。我想用一个字符串把每个单词的第一个字母大写起来,但保留已经大写的字母。
我希望获得以下产出:
how far is McDonald's from here? => How Far Is McDonald's From Here?
MDMA is also known as molly => MDMA Is Also Known As Molly
i drive a BMW => I Drive A BMW我原以为.titleize会这么做,但那会把BMW变成Bmw。谢谢你的帮助。
发布于 2015-07-23 01:32:21
您可以尝试以下方法:
a.split.map{|x| x.slice(0, 1).capitalize + x.slice(1..-1)}.join(' ')
# or
a.split.map{|x| x[0].upcase + x[1..-1]}.join(' ')#=> ["MDMA Is Also Known As Molly",
"How Far Is McDonald's From Here?",
"I Drive A BMW"]Demonstration
发布于 2015-07-23 01:22:24
您可以这样做一个自定义方法:
string = "your string IS here"
output = []
string.split(' ').each do |word|
if word =~ /[A-Z]/
output << word
else
output << word.capitalize
end
end
output.join(' ')当然,这不会改变像"tEST“或"tEst”这样的单词,因为其中至少有一个大写字母。
发布于 2020-09-13 19:03:46
仅将第一个字母大写,同时保留现有大写:
your_string.then { |s| s[0].upcase + s[1..-1] }https://stackoverflow.com/questions/31576504
复制相似问题