Ruby on Rails: Converting “SomeWordHere” to “some word here”

前端 未结 4 1173
夕颜
夕颜 2021-01-08 00:29

I know you can do something like:

\"SomeWordHere\".underscore.gsub(\"_\", \" \") 

to get \"some word here\".

I thought that might

4条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2021-01-08 00:53

    You can use a regular expression:

    puts "SomeWordHere".gsub(/[a-zA-Z](?=[A-Z])/, '\0 ').downcase
    

    Output:

    some word here
    

    One reason you might prefer this is if your input could contain dashes or underscores and you don't want to replace those with spaces:

    puts "Foo-BarBaz".underscore.gsub('_', ' ')
    puts "Foo-BarBaz".gsub(/[a-zA-Z](?=[A-Z])/, '\0 ').downcase
    

    Output:

    foo bar baz
    foo-bar baz
    

提交回复
热议问题