Вы можете сделать это с помощью ручного поиска, но это может быть проще с регулярным выражением.Предполагая:
- Вы знаете, что начинается с заглавной буквы
- Вам не нужен пробел перед этой столицей
- Вам нужен пробел перед все последующие столицы
Тогда:
function spacey(str) {
return str.substring(0, 1) +
str.substring(1).replace(/[A-Z]/g, function(ch) {
return " " + ch;
});
}
alert(spacey("FruitLoops")); // "Fruit Loops"
Живой пример
Более эффективноверсия, вдохновленная (но отличная от) ответ Патрика :
function spacey(str) {
return str.substring(0, 1) +
str.substring(1).replace(/([a-z])?([A-Z])/g, "$1 $2");
}
alert(spacey("FruityLoops")); // "Fruity Loops"
alert(spacey("FruityXLoops")); // "Fruity X Loops"
Живой пример