Puede hacerlo con una búsqueda manual, pero puede ser más fácil con una expresión regular. Suponiendo:
- Usted sabe que se inicia con un capital
- Usted no quiere un espacio delante de ese capital
- ¿Quieres un espacio delante de todos capitales posteriores
Entonces
:
function spacey(str) {
return str.substring(0, 1) +
str.substring(1).replace(/[A-Z]/g, function(ch) {
return " " + ch;
});
}
alert(spacey("FruitLoops")); // "Fruit Loops"
Live example
versión más eficiente inspirado por (pero diferente de) patrick's answer:
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"
Live example
votantes @close: ¿Cómo es exactamente este un duplicado de una pregunta XSLT ?! –