Remover acentos e caracteres especiais com JavaScript

Remover acentos e caracteres especiais com JavaScript

Neste artigo vamos ver 3 formas de como remover acentos e caracteres especiais de uma string utilizando JavaScript

O que você vai ver neste artigo:

* Remover acentos com Normalize

* Remover caracteres espeeciais com Expressões Regulares

* Remover acentos e caracteres especiais com Normalize e Expressões Regulares

 

Remover acentos com Normalize

Se você tem uma string com acentos e deseja remover a acentuação, a partir do JavaScript ES 6 (2015), existe um recurso chamado Normalize que permite substituir acentos por caracteres sem acentuação.

Aqui tem um exemplo:

var nome = "São Paulo";

var nome2 = nome.normalize("NFD");

console.log(nome2);

O retorno deste script é "Sao Paulo"

A função "normalize" utiliza a codificação Unicode para converter os caracteres com acentos. A opção NFD é a abreviação de "Normalization Form Canonical Decomposition". Existem outras 3 opções de conversão, que são NFC, NFKC e NFKD. O significado destas abreviações é:

 

Normalization Form D (NFD) - Canonical Decomposition

Normalization Form C (NFC) - Canonical Decomposition, followed by Canonical Composition

Normalization Form KD (NFKD) - Compatibility Decomposition

Normalization Form KC (NFKC) - Compatibility Decomposition, followed by Canonical Composition

 

Para saber em detalhes como funcionam estas opções consulte o link a seguir:

Unicode Normalization Forms

 

Remover caracteres espeeciais com Expressões Regulares

Para remover caracteres especiais, você vai precisar utilizar expressões regulares. Aqui tem um exemplo:

var nome = "2019 (Sao Paulo)";

var nome2 = nome.replace(/[^a-zA-Z\s]/g, "")

console.log(nome2);

O retorno deste script também é "Sao Paulo".

Nesta expressão regular, será considerado válido tudo o que tiver letras maiúsculas, minusculas ou espaço. O que for diferente será removido.

 

Remover acentos e caracteres especiais com Normalize e Expressões Regulares

Você pode combinar a normalização e as expressões regulares para validar tudo de uma vez.

O exemplo abaixo faz a normalização de uma string, mantendo apenas letras, espaços e caracteres sem acentuação.

function remover_acentos_espaco(str) {

    return str.normalize("NFD").replace(/[^a-zA-Z\s]/g, "");

}

console.log(remover_acentos_espaco("São Paulo"));

 

Encerramento

 

Neste artigo você viu como remover acentos e caracteres especiais utilizando JavaScript

Se você deseja mais dicas sobre como trabalhar com expressões regulares no JavaScript eu recomendo que você veja este artigo:

 

Localizando e substituindo dados com expressões regulares com JavaScript

 

Está começando e deseja saber o que precisa estudar de HTML e JavaScript? Não deixe de conferir os roteiros de estudo de HTML e JavaScript!. São dezenas de conteúdos para você melhorar suas habilidades.

Roteiro de estudos - HTML e CSS

Roteiro de estudos - Javascript

 

Outros conteudos que podem ser de seu interesse

Calcular a diferença  entre horas utilizando JavaScript
20/02/2022JAVASCRIPT

Calcular a diferença entre horas utilizando JavaScript

Veja como calcular a diferença entre horários utilizando JavaScript

Saiba mais...
Separando um array de strings em conjuntos de arrays ordenados alfabeticamente com JavaScript
19/03/2023JAVASCRIPT

Separando um array de strings em conjuntos de arrays ordenados alfabeticamente com JavaScript

Veja várias formas de separar um array de string com JavaScript

Saiba mais...

Conteúdo sobre banco de dados sem complicação!