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

Métodos para trabalhar com arrays no JavaScript
29/05/2022JAVASCRIPT

Métodos para trabalhar com arrays no JavaScript

Veja como resolver os problemas mais comuns ao utilizar arrays no JavaScript

Saiba mais...
Compactar arquivos com JavaScript
24/06/2023JAVASCRIPT

Compactar arquivos com JavaScript

Veja como compactar artigos utilizando JavaScript

Saiba mais...

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