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)".
asked Oct 26, 2009 at 4:50
nkspartan
4851 gold badge7 silver badges17 bronze badges
3 Answers 3
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);
Sign up to request clarification or add additional context in comments.
1 Comment
James Black
+1 - For doing the heavy lifting of coming up with a simple solution that will get most of the way, in a portable way.
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);
answered Oct 26, 2009 at 5:08
James Black
41.9k10 gold badges92 silver badges173 bronze badges
Comments
Another approach might be:
var input = "zergling-light";
var output = input.charAt(0).toUpperCase() + input.substring(1).replace("-", " (") + ")";
answered Oct 26, 2009 at 5:15
Traveling Tech Guy
27.9k25 gold badges117 silver badges167 bronze badges
Comments
lang-js