tags:

views:

39

answers:

3

Here is my PHP code..

$input = "zergling-light"
$output = str_replace('-', ' (', $input).")";
$output = strtoupper(substr($input, 0, 1)).substr($input, 1);
echo $output;
// Prints.. Zergling (light)

..I'm extremely crappy with my JavaScript code, could someone help me convert this? I basically want to convert a variable such as "marine-heavy" to "Marine (heavy)".

+2  A: 

This should do what you want, assuming that all inputs are of the correct form (i.e. "part1-part2")

input = "marine-heavy";
parts = input.split("-");
output = parts[0] + " (" + parts[1] + ")";
output = output[0][0].toUpperCase() + output.substring(1);
David
you're missing the `var` keyword at the beginning of the first 3 lines...
Traveling Tech Guy
+1 - For doing the heavy lifting of coming up with a simple solution that will get most of the way, in a portable way.
James Black
+1  A: 

David has a good start, but on some versions of IE a string cannot be treated as an array. http://stackoverflow.com/questions/255041/in-javascript-can-i-override-the-brackets-to-access-characters-in-a-string

var input = "marine-heavy";
var parts = input.split("-");
var output = parts[0] + " (" + parts[1] + ")";
output = output[0].charAt(0).toUpperCase() + output.substring(1);
James Black
+1  A: 

Another approach might be:

var input = "zergling-light";
var output = input.charAt(0).toUpperCase() + input.substring(1).replace("-", " (") + ")";
Traveling Tech Guy