Search code examples
scalaangular-filters

Scala equivalent of angular's pretty filter


In angularJs I can convert "my_name_is_XXX" to "My Name Is XXX" using the pretty filter. How can I do that in Scala. I came up with some clumsy regex which is close but the beginning is not Uppercase. Is there a better way?

scala> def underscoreToCamel(name: String) = "_([a-zA-Z\\d])".r.replaceAllIn(name, {m => " " + m.group(1).toUpperCase() })
underscoreToCamel: (name: String)String

scala> val p = underscoreToCamel("my_name_is")
p: String = my Name Is

scala> val p = underscoreToCamel("my_name_is_XXX")
p: String = my Name Is XXX

scala> val p = underscoreToCamel("my_name_is_XXX your_name")
p: String = my Name Is XXX your Name

In the last case I expect "My Name Is XXX Your Name"


Solution

  • Something like this?

     name.split("[ _]").map(_.capitalize).mkString(" ")