I am trying to do the equivalent of PHP's ucwords() in Flex. I dont want the whole string in uppercase just the first letter of each word. Does anyone know a way?
Thanks!
I am trying to do the equivalent of PHP's ucwords() in Flex. I dont want the whole string in uppercase just the first letter of each word. Does anyone know a way?
Thanks!
Try
str.replace(/\b./g,function(m){return String(m).toUpperCase()});
explanation:
the regex /\b./g matches a word boundary followed by any character. All matches will be passed to the anonymous function defined in second parameter of replace method. The function returns the match capitalized.
I made the following changes to get past some errors and warnings:
str.replace(/\b./g,function(m:String):String{return m.toUpperCase()});
but it gave me a strange crash, saying that it had three parameters when only one was expected.
I tried to fix the regex, but my regex-fu is not great. So I punted. This works (at least, for the first word in a string). For multiple words, you'd have to use the split.
str = str.substr(0,1).toUpperCase() + str.substr(1,str.length);
This is the same as Rafael's answer but with no warnings :)
str.replace(/\b./g,function(...m):String{return m[0].toUpperCase()});