0

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)".

nkspartan
  • 487
  • 1
  • 7
  • 17

3 Answers3

2

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
  • 2,821
  • 20
  • 16
  • +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 Oct 26 '09 at 05:09
2

David has a good start, but on some versions of IE a string cannot be treated as an array. 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);
Community
  • 1
  • 1
James Black
  • 41,583
  • 10
  • 86
  • 166
1

Another approach might be:

var input = "zergling-light";
var output = input.charAt(0).toUpperCase() + input.substring(1).replace("-", " (") + ")";
Traveling Tech Guy
  • 27,194
  • 23
  • 111
  • 159