Pular para o conteúdo

Documentação

Manipulação de strings

Uma string é um texto: tudo o que fica entre aspas simples, duplas ou crases. Ela vem com vários métodos prontos para limpar, buscar, cortar e transformar o texto.

Strings são imutáveis: nenhum método muda o texto original. Todos devolvem um texto novo, que você guarda numa variável ou usa direto.

Tamanho e acesso

Quantas letras um texto tem e como pegar uma letra específica.

length

Diz quantos caracteres o texto tem, contando espaços e pontuação. É uma propriedade, por isso vai sem parênteses.

Sintaxe
texto.length
Devolve
Um número: a quantidade de caracteres.
const nome = 'Maria Clara';
console.log(nome.length);
console.log(''.length);
Mostra
11
0

at()

Pega o caractere numa posição. A contagem começa em 0, e números negativos contam a partir do fim.

Sintaxe
texto.at(posicao)
Devolve
Uma string com um caractere, ou undefined se a posição não existir.
const palavra = 'JavaScript';
console.log(palavra.at(0));
console.log(palavra.at(-1));
console.log(palavra[4]);
Mostra
J
t
S

Maiúsculas e minúsculas

toUpperCase()

Devolve o texto com todas as letras em maiúsculas. Números e símbolos ficam como estão.

Sintaxe
texto.toUpperCase()
Devolve
Uma string nova, em maiúsculas.
const cidade = 'São Paulo';
console.log(cidade.toUpperCase());
console.log(cidade);
Mostra
SÃO PAULO
São Paulo

toLowerCase()

Devolve o texto com todas as letras em minúsculas. Muito útil para comparar textos sem se importar com maiúsculas.

Sintaxe
texto.toLowerCase()
Devolve
Uma string nova, em minúsculas.
const digitado = 'SIM';
console.log(digitado.toLowerCase());
console.log(digitado.toLowerCase() === 'sim');
Mostra
sim
true

Primeira letra maiúscula

Não existe um método pronto, mas dá para combinar at(0), toUpperCase() e slice(1).

Sintaxe
texto.at(0).toUpperCase() + texto.slice(1)
Devolve
Uma string nova, com a primeira letra maiúscula.
const nome = 'ana';
const bonito = nome.at(0).toUpperCase() + nome.slice(1);
console.log(bonito);
Mostra
Ana

Espaços e preenchimento

Nos exemplos, os colchetes só servem para mostrar onde o texto começa e termina.

trim()

Remove os espaços (e quebras de linha) do começo e do fim do texto. Os espaços do meio ficam.

Sintaxe
texto.trim()
Devolve
Uma string nova, sem espaços nas pontas.
const email = '   ana@email.com  ';
console.log(`[${email.trim()}]`);
console.log(`[${'  bom   dia  '.trim()}]`);
Mostra
[ana@email.com]
[bom   dia]

trimStart() e trimEnd()

Como o trim(), mas só de um lado: trimStart() limpa o começo e trimEnd() limpa o fim.

Sintaxe
texto.trimStart()
texto.trimEnd()
Devolve
Uma string nova, sem espaços no lado escolhido.
const texto = '   olá   ';
console.log(`[${texto.trimStart()}]`);
console.log(`[${texto.trimEnd()}]`);
Mostra
[olá   ]
[   olá]

padStart() e padEnd()

Completa o texto até um tamanho, repetindo um preenchimento no começo (padStart) ou no fim (padEnd).

Sintaxe
texto.padStart(tamanho, preenchimento)
texto.padEnd(tamanho, preenchimento)
Devolve
Uma string nova com o tamanho pedido. Se o texto já for maior, ele volta igual.
console.log('7'.padStart(2, '0'));
console.log('42'.padStart(5, '*'));
console.log('Total'.padEnd(10, '.') + 'R$ 30');
Mostra
07
***42
Total.....R$ 30

Buscar dentro do texto

includes()

Diz se um pedaço de texto aparece em algum lugar da string. Diferencia maiúsculas de minúsculas.

Sintaxe
texto.includes(procurado)
Devolve
true ou false.
const frase = 'Eu adoro JavaScript';
console.log(frase.includes('Java'));
console.log(frase.includes('java'));
Mostra
true
false

startsWith() e endsWith()

Dizem se o texto começa ou termina com um pedaço específico.

Sintaxe
texto.startsWith(inicio)
texto.endsWith(fim)
Devolve
true ou false.
const arquivo = 'foto-praia.png';
console.log(arquivo.startsWith('foto'));
console.log(arquivo.endsWith('.jpg'));
Mostra
true
false

indexOf() e lastIndexOf()

indexOf() diz a posição da primeira vez que o pedaço aparece; lastIndexOf(), a da última.

Sintaxe
texto.indexOf(procurado)
texto.lastIndexOf(procurado)
Devolve
Um número com a posição, ou -1 se não encontrar.
const texto = 'banana';
console.log(texto.indexOf('a'));
console.log(texto.lastIndexOf('a'));
console.log(texto.indexOf('x'));
Mostra
1
5
-1

Recortar e dividir

slice()

Recorta um pedaço do texto, do inicio até antes do fim. Sem o fim, vai até o final. Aceita números negativos.

Sintaxe
texto.slice(inicio, fim)
Devolve
Uma string nova com o pedaço recortado.
const texto = 'JavaScript';
console.log(texto.slice(0, 4));
console.log(texto.slice(4));
console.log(texto.slice(-3));
Mostra
Java
Script
ipt

substring()

Parecido com o slice(), mas trata números negativos como 0. Prefira o slice(), que é mais previsível.

Sintaxe
texto.substring(inicio, fim)
Devolve
Uma string nova com o pedaço recortado.
const texto = 'Mundo';
console.log(texto.substring(1, 3));
console.log(texto.substring(-2));
Mostra
un
Mundo

split()

Divide o texto num array, cortando onde aparece o separador. Com '' como separador, separa letra por letra.

Sintaxe
texto.split(separador)
Devolve
Um array de strings.
const frutas = 'maçã,uva,pera';
console.log(frutas.split(','));
console.log('oi'.split(''));
console.log('um dois três'.split(' ').length);
Mostra
[ 'maçã', 'uva', 'pera' ]
[ 'o', 'i' ]
3

Substituir e montar

replace()

Troca a primeira ocorrência de um pedaço por outro.

Sintaxe
texto.replace(procurado, novo)
Devolve
Uma string nova com a troca feita.
const frase = 'gato preto, gato branco';
console.log(frase.replace('gato', 'cão'));
Mostra
cão preto, gato branco

replaceAll()

Troca todas as ocorrências de um pedaço por outro.

Sintaxe
texto.replaceAll(procurado, novo)
Devolve
Uma string nova com todas as trocas feitas.
const frase = 'gato preto, gato branco';
console.log(frase.replaceAll('gato', 'cão'));
console.log('123.456.789-00'.replaceAll('.', '').replace('-', ''));
Mostra
cão preto, cão branco
12345678900

repeat()

Repete o texto um número de vezes.

Sintaxe
texto.repeat(vezes)
Devolve
Uma string nova com o texto repetido.
console.log('ha'.repeat(3));
console.log('-'.repeat(10));
Mostra
hahaha
----------

Template string (crases)

Com crases, você coloca valores no meio do texto usando ${ }. É o jeito mais legível de montar frases.

Sintaxe
`texto ${valor} texto`
Devolve
Uma string nova, com os valores no lugar.
const nome = 'Leo';
const idade = 12;
console.log(`${nome} tem ${idade} anos`);
console.log(`Ano que vem: ${idade + 1}`);
Mostra
Leo tem 12 anos
Ano que vem: 13

concat() e o operador +

Juntam textos. O + é o mais comum; o concat() faz o mesmo e aceita vários pedaços.

Sintaxe
texto + outro
texto.concat(outro, maisUm)
Devolve
Uma string nova com os textos juntos.
const nome = 'Ana';
console.log('Olá, ' + nome + '!');
console.log('Olá, '.concat(nome, '!'));
Mostra
Olá, Ana!
Olá, Ana!

Comparar e normalizar

localeCompare()

Compara dois textos na ordem alfabética do idioma, respeitando acentos. Ideal para ordenar listas de nomes.

Sintaxe
texto.localeCompare(outro)
Devolve
Um número negativo se texto vem antes, positivo se vem depois e 0 se são iguais.
const nomes = ['Érica', 'Bruno', 'Ana'];
nomes.sort((a, b) => a.localeCompare(b));
console.log(nomes);
console.log('a'.localeCompare('a'));
Mostra
[ 'Ana', 'Bruno', 'Érica' ]
0

normalize()

Com 'NFD', separa cada letra do seu acento. Junto com um replace, serve para remover acentos.

Sintaxe
texto.normalize('NFD')
Devolve
Uma string nova, na forma pedida.
const texto = 'Ação é fácil';
const semAcento = texto.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
console.log(semAcento);
Mostra
Acao e facil

Quer testar? Copie um exemplo e rode no Rascunho.