Convertir cadena de JavaScript para que esté todo en minúsculas
¿Cómo puedo convertir un valor de cadena de JavaScript para que esté en letras minúsculas?
Ejemplo: "Your Name"
a"your name"
const lowerCaseName = "Your Name".toLowerCase(); // your name
Utilice los métodos toLowerCase o toLocaleLowerCase del objeto String . La diferencia es que toLocaleLowerCase
tendrá en cuenta la configuración regional actual del usuario/host. Según § 15.5.4.17 de la Especificación del lenguaje ECMAScript (ECMA-262) , toLocaleLowerCase
…
…funciona exactamente igual que toLowerCase excepto que su resultado está destinado a producir el resultado correcto para la configuración regional actual del entorno host, en lugar de un resultado independiente de la configuración regional. Sólo habrá una diferencia en los pocos casos (como el turco) donde las reglas para ese idioma entren en conflicto con las asignaciones de casos Unicode habituales.
Ejemplo:
var lower = 'Your Name'.toLowerCase();
También tenga en cuenta que las funciones toLowerCase
y toLocaleLowerCase
están implementadas para funcionar genéricamente en cualquier tipo de valor. Por lo tanto, puede invocar estas funciones incluso en no String
objetos. Hacerlo implicará la conversión automática a un valor de cadena antes de cambiar el caso de cada carácter en el valor de cadena resultante. Por ejemplo, puedes presentar toLowerCase
tu solicitud directamente en una fecha como esta:
var lower = String.prototype.toLowerCase.apply(new Date());
y que es efectivamente equivalente a:
var lower = new Date().toString().toLowerCase();
Generalmente se prefiere la segunda forma por su simplicidad y legibilidad. En versiones anteriores de IE, la primera tenía la ventaja de que podía funcionar con un null
valor. El resultado de aplicar toLowerCase
o toLocaleLowerCase
on null
produciría null
(y no una condición de error).
Sí, cualquier cadena en JavaScript tiene un toLowerCase()
método que devolverá una nueva cadena que es la cadena anterior en minúsculas. La cadena antigua permanecerá sin cambios.
Entonces, puedes hacer algo como:
"Foo".toLowerCase();
document.getElementById('myField').value.toLowerCase();
toLocaleUpperCase() o las funciones en minúsculas no se comportan como deberían. Por ejemplo, en mi sistema, con Safari 4, Chrome 4 Beta y Firefox 3.5.x, convierte incorrectamente cadenas con caracteres turcos. Los navegadores responden a navigator.language como "en-US", "tr", "en-US" respectivamente.
Pero, hasta donde pude encontrar, no hay ninguna forma de obtener la configuración Accept-Lang del usuario en el navegador.
Sólo Chrome me da problemas, aunque he configurado todos los navegadores con la configuración regional tr-TR preferida. Creo que estas configuraciones solo afectan el encabezado HTTP, pero no podemos acceder a estas configuraciones a través de JavaScript.
En la documentación de Mozilla dice "Los caracteres dentro de una cadena se convierten a... respetando la configuración regional actual. Para la mayoría de los idiomas, esto devolverá lo mismo que...". Creo que es válido para turco y no difiere si está configurado como en o tr .
En turco, debería convertir "DİNÇ" en "dinç" y "DINÇ" en "dınç" o viceversa.
Sólo un ejemplo de toLowerCase()
y toUpperCase()
un prototipo de lo que aún no está disponible toTitleCase()
o toProperCase()
:
String.prototype.toTitleCase = function() {
return this.split(' ').map(i => i[0].toUpperCase() + i.substring(1).toLowerCase()).join(' ');
}
String.prototype.toPropperCase = function() {
return this.toTitleCase();
}
var OriginalCase = 'Your Name';
var lowercase = OriginalCase.toLowerCase();
var upperCase = lowercase.toUpperCase();
var titleCase = upperCase.toTitleCase();
console.log('Original: ' + OriginalCase);
console.log('toLowerCase(): ' + lowercase);
console.log('toUpperCase(): ' + upperCase);
console.log('toTitleCase(): ' + titleCase);