Converter JavaScript String em letras minúsculas?

1290

Como converter um valor de string JavaScript em minúsculas?

Exemplo: "Seu nome" para "seu nome"

Derek
fonte

Respostas:

1682
var lowerCaseName = "Your Name".toLowerCase();
John Topley
fonte
27
Considere isso também: "toLowerCase não afeta o valor da própria string str". Isso é baseado em uma documentação aqui developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/…
Cary Bondoc
qual é a complexidade da toLowerCase()função no tempo e no espaço ?
Ramzan Chasygov 04/04
7
@RamzanChasygov É O (n) e mais rápido do que reimplementá-lo em JavaScript, a menos que você tenha um mecanismo JavaScript programado por idiotas muito inteligentes.
Wizzwizz4
1
Uma maneira mais segura de invocar toLowerCase()variáveis ​​seria (varName || '').toLowerCase();
Dinesh Pandiyan
413

Use toLowerCase métodos ou toLocaleLowerCase do objeto String . A diferença é que toLocaleLowerCaselevará em consideração a localidade atual do usuário / host. Conforme o § 15.5.4.17 da especificação de idioma do ECMAScript (ECMA-262) , toLocaleLowerCase

… Funciona exatamente da mesma maneira que toLowerCase, exceto que seu resultado se destina a gerar o resultado correto para a localidade atual do ambiente host, em vez de um resultado independente da localidade. Só haverá diferença nos poucos casos (como o turco) em que as regras para esse idioma entrem em conflito com os mapeamentos de casos Unicode regulares.

Exemplo:

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

Observe também que as funções toLowerCasee toLocaleLowerCasesão implementadas para funcionar genericamente em qualquer tipo de valor. Portanto, você pode invocar essas funções mesmo em Stringobjetos não . Fazer isso implicará a conversão automática em um valor de sequência antes de alterar o caso de cada caractere no valor resultante da sequência. Por exemplo, você pode aplicar toLowerCase diretamente em uma data como esta:

var lower = String.prototype.toLowerCase.apply(new Date());

e que é efetivamente equivalente a:

var lower = new Date().toString().toLowerCase();

A segunda forma é geralmente preferida por sua simplicidade e legibilidade. Nas versões anteriores do IE, a primeira tinha o benefício de poder trabalhar com um nullvalor. O resultado da aplicação toLowerCaseou toLocaleLowerCasenanull renderia null(e não uma condição de erro).

Atif Aziz
fonte
22
+1, essa resposta merece forma mais vota-se que a resposta aceita que explica nada, quero dizer que
Frederik.L
A parte sobre o String.prototype.toLowerCase.apply(null)retorno nullnão parece estar correta. Isso lança uma TypeErrorexceção quando eu tento.
JohnnyHK
2
@JohnnyHK Você está certo. Esse bit costumava ser verdadeiro nas versões anteriores do IE, onde era testado no momento em que a resposta foi postada originalmente. Atualizei a resposta para refletir seus comentários. Obrigado.
Atif Aziz
29

Sim, qualquer string no JavaScript possui um toLowerCase()método que retornará uma nova string que seja a antiga em todas as minúsculas. A cadeia antiga permanecerá inalterada.

Então, você pode fazer algo como:

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

As funções toLocaleUpperCase () ou minúsculas não se comportam como deveriam.

Por exemplo, no meu sistema, Safari 4, Chrome 4 Beta, Firefox 3.5.x, ele converte seqüências de caracteres com caracteres turcos incorretamente.

Os navegadores respondem ao navigator.language como "en-US", "tr", "en-US", respectivamente.

Mas não há como obter a configuração Accept-Lang do usuário no navegador, tanto quanto pude encontrar.

Somente o Chrome me causa problemas, embora eu tenha configurado todos os navegadores como localidade tr-TR preferida.

Acho que essas configurações afetam apenas o cabeçalho HTTP, mas não podemos acessar essas configurações via JS.

Na documentação do Mozilla , diz "Os caracteres dentro de uma string são convertidos em ... respeitando o local atual.

Para a maioria dos idiomas, isso retornará o mesmo que ... ".

Eu acho que é válido para turco, não difere, está configurado como en ou tr.

Em turco, deve converter "DİNÇ" em "dinç" e "DINÇ" em "dınç" ou vice-versa.

sanilunlu
fonte
Accept-Languagee navigator.languagesão duas configurações completamente separadas. Accept-Languagereflete as preferências escolhidas pelo usuário para quais idiomas eles desejam receber nas páginas da Web (e essa configuração é inacessivelmente inacessível para JS). navigator.languagereflete apenas a localização do navegador da web instalada e geralmente não deve ser usada para nada. Esses dois valores não estão relacionados ao código do idioma do sistema, que é o bit que decide o que toLocaleLowerCase()fará; essa é uma configuração no nível do sistema operacional fora do escopo das preferências do navegador.
22910
Eu pensei que Accept-Language e navigator.language deveriam estar de alguma forma relacionados. Você pode configurar o idioma padrão em ordem através das telas de configurações dos navegadores, mas não pode configurar o navegador.language que deve responder. Eu acho que deveria haver outra forma da função toLowerCase () que obtém um parâmetro de localidade.
precisa saber é o seguinte
Sim, deveria mesmo. Infelizmente, os recursos relacionados ao código do idioma no JavaScript são fracos, mal especificados e geralmente não são confiáveis.
bobince
15

Apenas um exemplo para toLowerCase(), toUpperCase()e protótipo para não disponível toTitleCase()outoPropperCase()

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
fonte
1
toPropperCasedeve sertoProperCase
Ian
-1 este código é muito propenso a erros em tudo que não seja ASCII. Por exemplo, com a entrada alemã "die straße", você receberá "Die Strasse" como o caso do título. Correto seria "Die Straße". Além disso, a poluição por protótipo é hoje em dia desaprovada.
ComFreek 18/04
13

Eu paguei atenção que muitas pessoas estão olhando parastrtolower() em JavaScript. Eles estão esperando o mesmo nome de função que em outros idiomas, é por isso que este post está aqui.

Eu recomendaria o uso da função Javascript nativa

"SomE StriNg".toLowerCase()

Aqui está a função que se comporta exatamente da mesma maneira que a do PHP (para quem está portando código PHP em js)

function strToLower (str) {
    return String(str).toLowerCase();
}
Dan
fonte
Para que serve + ''?
UpTheCreek
8

Observe que a função só funcionará em objetos STRING.

Por exemplo, eu estava consumindo um plug-in e fiquei confuso por que estava recebendo um erro JS "extension.tolowercase não é uma função".

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

O que produziu o erro "extension.toLowerCase não é uma função". Então, tentei esse trecho de código, que revelou o problema!

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

A saída foi "(typeof extension) => objeto <=" - então AhHa, eu não estava obtendo uma string var para minha entrada. A correção é simples - basta forçar a maldita coisa a uma String !:

var extension = String(extension);

Após a transmissão, a função extension.toLowerCase () funcionou bem.

Paul Gorbas
fonte
8

Método ou função: toLowerCase (), toUpperCase ()

Descrição: esses métodos são usados ​​para cobrir uma sequência ou alfabeto de letras minúsculas para maiúsculas ou vice-versa. por exemplo: "e" para "AND".

Convertendo para maiúsculas: - Exemplo de código: -

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

Resultado: TESTE DO MÉTODO DE CONVERSÃO DE CASO

Convertendo para minúsculas: - Exemplo de código:

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

Resultado: testando a função de conversão em minúsculas

Explicação: Nos exemplos acima,

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

Basta usar JS toLowerCase()
let v = "Your Name" let u = v.toLowerCase();ou
let u = "Your Name".toLowerCase();

Harunur Rashid
fonte
2

Opção 1: usando toLowerCase ();

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

Opção 2: usando sua própria função

 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
    }

Chame como:

x= convertToLowerCase(x);
Siddhartha
fonte
A primeira opção já foi mencionada em outras respostas, a segunda opção falha muito para tudo que não é ASCII.
ComFreek 18/04
-1

Bandeja dessa maneira curta

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

Caso você queira construí-lo você mesmo:

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
fonte
-2

você pode usar o método .toLowerCase () incorporado em strings javascript. ex: var x = "Olá"; x.toLowerCase ();

Praveen
fonte
1
Este é idêntico ao código de boa aceite resposta de menos formatação
reggaeguitar
-4

Tentar

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

Demo - JSFiddle

Algum cara de Java
fonte
7
Bom, mas não especialmente javascript, não?
some-não descrita pelo usuário
Com base no que alguns usuários não-descritivos disseram, o OP está procurando uma solução JavaScript. Embora essa resposta seja válida, ela não responde à pergunta do OP de acordo com os parâmetros definidos.
boxspah
Bom ... Eu estava procurando um método CSS e vim para esta página
Abhishek Nalin