¿Convertir la cadena de JavaScript en minúsculas?

1290

¿Cómo puedo convertir un valor de cadena de JavaScript en minúsculas?

Ejemplo: "Tu nombre" a "tu nombre"

Derek
fuente

Respuestas:

1682
var lowerCaseName = "Your Name".toLowerCase();
John Topley
fuente
27
Considere esto también, "toLowerCase no afecta el valor de la cadena str en sí". Esto se basa en una documentación aquí developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
Cary Bondoc
¿Qué es el tiempo y el espacio de la complejidad de la toLowerCase()función?
Ramzan Chasygov
77
@RamzanChasygov Es O (n) y más rápido que volver a implementarlo en JavaScript, a menos que tenga un motor de JavaScript programado por idiotas muy inteligentes.
wizzwizz4
1
toLowerCase()Sería una forma más segura de invocar variables (varName || '').toLowerCase();
Dinesh Pandiyan
413

Úselo para bajar el caso métodos 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. Solo habrá una diferencia en los pocos casos (como el turco) donde las reglas para ese idioma entran en conflicto con las asignaciones de casos Unicode regulares.

Ejemplo:

var lower = 'Your Name'.toLowerCase();

También tenga en cuenta que las funciones toLowerCasey toLocaleLowerCasese implementan para funcionar genéricamente en cualquier tipo de valor. Por lo tanto, puede invocar estas funciones incluso en Stringobjetos que no son . 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, puede aplicar toLowerCase 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();

La segunda forma es generalmente preferida por su simplicidad y legibilidad. En versiones anteriores de IE, la primera tenía el beneficio de que podía funcionar con un nullvalor. El resultado de aplicar toLowerCaseo toLocaleLowerCaseennull produciría null(y no una condición de error).

Atif Aziz
fuente
22
+1, esta respuesta merece más votos que la respuesta aceptada que no explica nada en absoluto, lo digo en serio
Frederik.L
La parte sobre el String.prototype.toLowerCase.apply(null)regreso nullno parece ser correcta. Lanza una TypeErrorexcepción cuando lo intento.
JohnnyHK
2
@JohnnyHK Tienes razón. Ese bit solía ser cierto en versiones anteriores de IE donde se probó en el momento en que se publicó originalmente la respuesta. He actualizado la respuesta para reflejar sus comentarios. Gracias.
Atif Aziz
29

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 anterior permanecerá sin cambios.

Entonces, puedes hacer algo como:

"Foo".toLowerCase();
document.getElementById('myField').value.toLowerCase();
pkaeding
fuente
20

toLocaleUpperCase () o las funciones en minúscula no se comportan como deberían.

Por ejemplo, en mi sistema, Safari 4, Chrome 4 Beta, Firefox 3.5.x, convierte cadenas con caracteres turcos incorrectamente.

Los navegadores responden a navigator.language como "en-US", "tr", "en-US" respectivamente.

Pero no hay forma de obtener la configuración Accept-Lang del usuario en el navegador por lo que pude encontrar.

Solo Chrome me causa problemas, aunque he configurado todos los navegadores como la configuración regional tr-TR preferida.

Creo que esta configuración solo afecta al encabezado HTTP, pero no podemos acceder a esta configuración a través de JS.

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, no difiere, está configurado como en o tr.

En turco debe convertir "DİNÇ" a "dinç" y "DINÇ" a "dınç" o viceversa.

sanilunlu
fuente
Accept-Languagey navigator.languageson dos configuraciones completamente separadas. Accept-Languagerefleja las preferencias elegidas por el usuario para los idiomas que desea recibir en las páginas web (y esta configuración es inaccesible para JS). navigator.languagesimplemente refleja qué localización del navegador web se instaló y, por lo general, no debe usarse para nada. Ambos valores no están relacionados con la configuración regional del sistema, que es el bit que decide qué toLocaleLowerCase()hará; Esa es una configuración de nivel de sistema operativo fuera del alcance de las preferencias del navegador.
bobince
Pensé que Accept-Language y navigator.language deberían estar relacionados de alguna manera. Puede configurar el idioma predeterminado en orden a través de las pantallas de configuración de los navegadores, pero no puede configurar qué debería responder navigator.language. Creo que debería haber otra forma de la función toLowerCase () que obtiene un parámetro de configuración regional.
sanilunlu
Sí, realmente debería. Desafortunadamente, las características relacionadas con la configuración regional en JavaScript son débiles, poco especificadas y generalmente poco confiables.
bobince
15

Sólo un ejemplo para toLowerCase(), toUpperCase()y prototipo para todavía no está disponible toTitleCase()otoPropperCase()

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

editado 2018

ewwink
fuente
1
toPropperCasedebería sertoProperCase
Ian
-1 este código es muy propenso a errores con todo lo que no sea ASCII. Por ejemplo, con la entrada alemana "die straße", obtendrá "Die Strasse" como el caso del título. Correcto sería "Die Straße". Aparte de eso, la contaminación de prototipos está mal vista hoy en día.
ComFreek
13

Le había pagado la atención que mucha gente está buscando para strtolower()en JavaScript. Esperan el mismo nombre de función que en otros idiomas, es por eso que esta publicación está aquí.

Yo recomendaría usar la función nativa de Javascript

"SomE StriNg".toLowerCase()

Aquí está la función que se comporta exactamente igual que la de PHP (para aquellos que están transfiriendo código PHP a js)

function strToLower (str) {
    return String(str).toLowerCase();
}
Dan
fuente
¿Qué es la + ''de?
UpTheCreek
8

Tenga en cuenta que la función SOLO funcionará en objetos STRING.

Por ejemplo, estaba consumiendo un complemento y estaba confundido por qué recibía un error JS "extension.tolowercase no es una función".

 onChange: function(file, extension)
    {
      alert("extension.toLowerCase()=>" + extension.toLowerCase() + "<=");

Lo que produjo el error "extension.toLowerCase no es una función" ¡Así que probé este código, que reveló el problema!

alert("(typeof extension)=>" + (typeof extension) + "<=");;

El resultado fue "(typeof extension) => object <=" - así que Ah, no estaba obteniendo una cadena var para mi entrada. Sin embargo, la solución es sencilla: ¡simplemente fuerce la maldita cosa en una cadena !:

var extension = String(extension);

Después del reparto, la función extension.toLowerCase () funcionó bien.

Paul Gorbas
fuente
8

Método o función: toLowerCase (), toUpperCase ()

Descripción: estos métodos se utilizan para cubrir una cadena o un alfabeto de minúsculas a mayúsculas o viceversa. por ejemplo: "y" a "Y".

Conversión a mayúsculas: - Código de ejemplo: -

<script language=javascript>
var ss = " testing case conversion method ";
var result = ss.toUpperCase();
document.write(result);
</script>

Resultado: MÉTODO DE CONVERSIÓN DE CASO DE PRUEBA

Conversión a minúsculas: - Código de ejemplo:

<script language=javascript>
var ss = " TESTING LOWERCASE CONVERT FUNCTION ";
var result = ss.toLowerCase();
document.write(result);
</script>

Resultado: prueba de la función de conversión en minúsculas

Explicación: en los ejemplos anteriores,

toUpperCase() method converts any string to "UPPER" case letters.
toLowerCase() method converts any string to "lower" case letters.
JackSparrow
fuente
3

Simplemente use JS toLowerCase()
let v = "Your Name" let u = v.toLowerCase();o
let u = "Your Name".toLowerCase();

Harunur Rashid
fuente
2

Opción 1: usar toLowerCase ();

var x = "ABC";
x=x.toLowerCase();

Opción 2: usar su propia función

 function convertToLowerCase(str) {
      var result = ''

      for (var i = 0; i < str.length; i++) {
        var code = str.charCodeAt(i)
        if (code > 64 && code < 91) {
          result += String.fromCharCode(code + 32)
        } else {
          result += str.charAt(i)
        }
      }
      return result
    }

Llámalo como:

x= convertToLowerCase(x);
Siddhartha
fuente
La primera opción ya se ha mencionado en otras respuestas, la segunda opción falla mucho para todo lo que no sea ASCII.
ComFreek
-1

Bandeja de esta manera corta

  document.write((a+"").toUpperCase());
Abdurahman Popal
fuente
-1

En caso de que quiera construirlo usted mismo:

function toLowerCase(string) {

let lowerCaseString = "";

for (let i = 0; i < string.length; i++) {
    //find ASCII charcode
    let charcode = string.charCodeAt(i);

    //if uppercase
    if (charcode > 64 && charcode < 97){
        //convert to lowercase
        charcode = charcode + 32
    }

    //back to char
    let lowercase = String.fromCharCode(charcode);

    //append
    lowerCaseString = lowerCaseString.concat(lowercase);
}

return lowerCaseString

}

Javier Giovannini
fuente
-2

puede usar el método incorporado .toLowerCase () en cadenas de JavaScript. ej .: var x = "Hola"; x.toLowerCase ();

Praveen
fuente
1
Esto es idéntico a la respuesta aceptada menos un buen formato de código
reggaeguitar
-4

Tratar

<input type="text" style="text-transform: uppercase">  //uppercase
<input type="text" style="text-transform: lowercase">  //lowercase

Demostración - JSFiddle

Un chico de java
fuente
77
Agradable, pero no especialmente javascript, ¿no?
un usuario no descripto el
Sobre la base de lo que dijo @ some-non-descript-user, el OP está buscando una solución de JavaScript. Aunque esta respuesta es válida, no responde la pregunta del OP según los parámetros definidos.
boxspah
Bien ... Estaba buscando un método CSS y llegué a esta página
Abhishek Nalin