Como pegar o trecho de texto no JavaScript
O método slice
é amplamente utilizado para extrair partes de uma string, oferecendo suporte a índices negativos e maior flexibilidade. O método substring
também pode ser usado, mas possui algumas diferenças importantes.
Usando slice
O método slice
permite extrair partes de uma string com base em índices, incluindo suporte a valores negativos.
Sintaxe básica
string.slice(indiceInicio, indiceFim)
Exemplo:
let texto = "JavaScript"
let trecho = texto.slice(0, 4)
console.log(trecho) // "Java"
Índices negativos
Com slice
, você pode usar índices negativos para contar a partir do final da string.
let texto = "JavaScript"
console.log(texto.slice(-6, -1)) // "Scrip"
Usando substring
O método substring
também é usado para extrair partes de uma string, mas não suporta índices negativos. Ele trata valores negativos como 0
.
Sintaxe básica
string.substring(indiceInicio, indiceFim)
Exemplo:
let texto = "JavaScript"
let trecho = texto.substring(0, 4)
console.log(trecho) // "Java"
Diferença de comportamento
Índices negativos:
slice
aceita índices negativos.substring
converte índices negativos para0
.
Ordem dos índices:
- Em
substring
, se o índice inicial for maior que o final, os valores são invertidos. - Em
slice
, a ordem dos índices é respeitada.
- Em
Exemplo comparativo:
let texto = "JavaScript"
// Usando slice
console.log(texto.slice(4, 0)) // ""
// Usando substring
console.log(texto.substring(4, 0)) // "Java"
Aviso sobre substr
O método substr
está em desuso e não é recomendado para novos projetos. Ele pode não ser suportado em implementações futuras.
Exemplo de substr
:
let texto = "JavaScript"
console.log(texto.substr(4, 6)) // "Script"
Prefira usar slice
ou substring
para garantir compatibilidade e boas práticas.
Conclusão
O método slice
é mais flexível e recomendado para manipulação de strings, especialmente por suportar índices negativos. No entanto, substring
ainda pode ser útil em casos específicos. Experimente ambos para entender suas diferenças e escolher o mais adequado para suas necessidades.