如何解决Ruby或Rails是否有仅大写第一个字符的方法?
| 还是好像我必须编写自己的方法? (保持ѭ0不变):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)\"
解决方法
如果我的回答只是垃圾,我深表歉意(我不做红宝石)。
但我相信我已经为您找到了答案:
Ruby相当于PHP的ucfirst()函数
,您可以将gsub与正则表达式配合使用,该正则表达式与每个单词的第一个字符匹配,并将其替换为大写字符:
ruby-1.9.2-p180 :001 > \'omega-3 (DHA)\'.gsub(/\\b\\w/){ $&.upcase }
=> \"Omega-3 (DHA)\"
[哦...但是如果您只想要字符串的第一个字符,那太复杂了... gsub将执行每个单词的第一个字符。 s[0] = s[0].upcase
就可以了。]
,您可以使用.titleize或.titlecase来大写单词的第一个字母。
例如:-
\“ manish anand \”。titleize => Manish Anand
\“ manish anand \”。titlecase => Manish Anand
或者你可以使用
\“ manish anand \”。split.map(&:capitalize).join(\'\')=> Manish Anand
,Ruby没有一种具有您要查找的确切行为的方法。
,就个人而言,对于这样的简单用途,我会使用:
s[0] = s[0].upcase
,Rails 5添加了此内容;叫upcase_first
在Rails 4或更低版本中,将此添加到字符串扩展名。
class String
def upcase_first
self.sub(/\\S/,&:upcase)
end
end
,Ruby没有方法仅将首字母大写(不留其他所有字母)。您必须像第四个示例一样使用自己的解决方案。
,.humanize接近,但会小写其余的字符串。我认为Tin Man的答案是最简单的。
s[0] = s[0].upcase
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。