Convertir cadena de JavaScript para que esté todo en minúsculas

Resuelto Derek asked hace 16 años • 16 respuestas

¿Cómo puedo convertir un valor de cadena de JavaScript para que esté en letras minúsculas?

Ejemplo: "Your Name"a"your name"

Derek avatar Oct 01 '08 03:10 Derek
Aceptado
const lowerCaseName = "Your Name".toLowerCase(); // your name
John Topley avatar Sep 30 '2008 20:09 John Topley

Utilice los métodos toLowerCase o toLocaleLowerCase del objeto String . La diferencia es que toLocaleLowerCasetendrá 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 toLowerCasey toLocaleLowerCaseestán implementadas para funcionar genéricamente en cualquier tipo de valor. Por lo tanto, puede invocar estas funciones incluso en no Stringobjetos. 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 nullvalor. El resultado de aplicar toLowerCaseo toLocaleLowerCaseon nullproduciría null(y no una condición de error).

Atif Aziz avatar Sep 30 '2008 21:09 Atif Aziz

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();
pkaeding avatar Sep 30 '2008 20:09 pkaeding

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.

sanilunlu avatar Dec 04 '2009 22:12 sanilunlu

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);
Expandir fragmento

ewwink avatar Oct 02 '2010 09:10 ewwink