1
resposta

[Projeto] Solução para problema com acentuação

Bom dia pessoal.

Primeiramente falar que gostei muito desse curso. Sei que é bem introdutório e não trouxe todos os conceito do Angular, mas já olhei e tem uma outra formação que traz isso, e com certeza irei me matricular.

Bem, para a solução, primeiramente eu fui no Google e digitei "ignore accent typescript", e encontei uma pergunta do StackOverflow de como remover acentos no Javascript. A resposta mais votada inclui o seguinte código:

const str = "Crème Brûlée"
str.normalize("NFD").replace(/[\u0300-\u036f]/g, "")
> "Creme Brulee"

Então eu criei uma função com esse str.normalize() e implementei quando o filtroPorTexto é diferente de nulo:

normalizarAcentos(palavra: String): String {
    return palavra.normalize("NFD").replace(/[\u0300-\u036f]/g, "")
  }
  
  filtrarContatosPorTexto(): Contato[] {
    if (!this.filtroPorTexto) {
      return this.contatos
    }

    return this.contatos.filter(contato => {
      return contato.nome.toLowerCase().includes(
        this.normalizarAcentos(this.filtroPorTexto).toLowerCase()
      )
    })
  }

Depois fiz o teste e está funcionando corretamente Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá Lucas, tudo bem?

Que bom que você está gostando do curso! Fico feliz em saber que você encontrou uma solução para o problema de acentuação. A sua abordagem utilizando normalize e replace está correta e é uma forma eficiente de lidar com acentuação em strings no JavaScript/TypeScript.

Lucas, obrigada por compartilhar sua solução, com certeza ajudará outros alunos.

Caso surja alguma dúvida, compartilhe no fórum.

Abraços e bons estudos!