Есть ли в Ruby или Rails метод для заглавных букв только первого символа? - PullRequest
5 голосов
/ 13 апреля 2011

Или мне кажется, что я должен написать свой собственный метод? (сохранить DHA нетронутым):

ruby-1.9.2-p180 :001 > s = 'omega-3 (DHA)'
 => "omega-3 (DHA)" 

ruby-1.9.2-p180 :002 > s.capitalize
 => "Omega-3 (dha)" 

ruby-1.9.2-p180 :003 > s.titleize
 => "Omega 3 (Dha)" 

ruby-1.9.2-p180 :005 > s[0].upcase + s[1..-1]
 => "Omega-3 (DHA)" 

Ответы [ 8 ]

4 голосов
/ 14 апреля 2011

Вы можете использовать gsub с регулярным выражением, которое соответствует первому символу каждого слова и заменяет его на верхний регистр:

ruby-1.9.2-p180 :001 > 'omega-3 (DHA)'.gsub(/\b\w/){ $&.upcase }
 => "Omega-3 (DHA)" 

[О ... но это слишком сложно, если вы просто хотитепервый символ строки ... gsub будет делать первый символ каждого слова.s[0] = s[0].upcase будет работать нормально.]

4 голосов
/ 13 апреля 2011

Приношу свои извинения, если мой ответ - просто чушь (я не делаю рубина). Но я считаю, что нашел для вас ответ:

Рубиновый эквивалент функции ucfirst () в PHP

3 голосов
/ 26 сентября 2013

Вы можете использовать .titleize или .titlecase для прописных букв первой буквы слова.

ex: - "manish anand".titleize => Manish Anand" manish anand ".titlecase => Manish Anand

Или вы можете использовать

" manish anand " .split.map (&: capitalize).присоединиться ('') => Маниш Ананд

2 голосов
/ 14 апреля 2011

Лично для такого простого использования я бы использовал:

s[0] = s[0].upcase
2 голосов
/ 13 апреля 2011

В Ruby нет метода с точным поведением, которое вы ищете.

1 голос
/ 07 сентября 2016

Rails 5 добавил это;он называется upcase_first.

В Rails 4 или ранее добавьте это в расширение строки.

class String

  def upcase_first
    self.sub(/\S/, &:upcase)
  end

end
0 голосов
/ 18 июня 2014

.humanize подходит близко, но это сокращает остальную часть строки.Я думаю, что ответ Железного Человека является самым простым.

s[0] = s[0].upcase
0 голосов
/ 13 апреля 2011

В Ruby нет метода для заглавных букв только первого символа (и оставьте все остальные буквы в покое). Вы должны использовать свое собственное решение, как ваш четвертый пример.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...