sjs*_*jsc 15 ruby ruby-on-rails
我知道你可以这样做:
"SomeWordHere".underscore.gsub("_", " ")
Run Code Online (Sandbox Code Playgroud)
在这里得到"一些字".
我认为对于这么简单的事情来说可能有点太多了.是否有更有效的方法(可能是内置方法?)将"SomeWordHere"转换为"某些字在这里"?
Anu*_*rag 23
![]()
下划线和人性化的方法是为表,类/包名称等之间的转换而设计的.最好使用自己的代码进行替换以避免意外.看评论.
"SomeWordHere".underscore => "some_word_here"
"SomeWordHere".underscore.humanize => "Some word here"
"SomeWordHere".underscore.humanize.downcase => "some word here"
Run Code Online (Sandbox Code Playgroud)
您可以使用正则表达式:
puts "SomeWordHere".gsub(/[a-zA-Z](?=[A-Z])/, '\0 ').downcase
Run Code Online (Sandbox Code Playgroud)
输出:
some word here
Run Code Online (Sandbox Code Playgroud)
您可能更喜欢这个的一个原因是,如果您的输入可能包含破折号或下划线,并且您不想用空格替换它们:
puts "Foo-BarBaz".underscore.gsub('_', ' ')
puts "Foo-BarBaz".gsub(/[a-zA-Z](?=[A-Z])/, '\0 ').downcase
Run Code Online (Sandbox Code Playgroud)
输出:
foo bar baz
foo-bar baz
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6070 次 |
| 最近记录: |