Skip to content

Instantly share code, notes, and snippets.

@innerspirit
Last active September 22, 2016 19:25
Show Gist options
  • Save innerspirit/d78a4488c6eeeac9f92ea6534a2a0f56 to your computer and use it in GitHub Desktop.
Save innerspirit/d78a4488c6eeeac9f92ea6534a2a0f56 to your computer and use it in GitHub Desktop.
// Convierte "hugh mungus" a "Hugh Mungus"
function titleCase(str) {
// Funcion que se va a usar sobre cada palabra de la frase.
// Convierte el primer caracter en mayusculas y el resto de la
// palabra en minusculas.
callback = function(txt){
// Tomamos el primer caracter (0) pero como mayusculas.
return txt.charAt(0).toUpperCase()
// Le agregamos el resto del string (substring(1)) en minusc.
+ txt.substr(1).toLowerCase();
}
// Separa el string en palabras (\w = caracter, \S = espacios)
// y aplica la funcion a cada match.
return str.replace(/\w\S*/g, callback);
// Las expresiones regulares se ejecutan en modo "greedy" por defecto,
// lo que significa que si se encuentran varios \w seguidos, se toma
// el mayor match posible y por eso si bien "a" en "abcd" seria un
// match para \w\S, como se usa modo greedy se sigue buscando el mayor
// match posible ("abcd") y se ejecuta el callback una sola vez.
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment