Remover acentos e caracteres especiais com JavaScript

Aprenda a remover acentos usando JS com apenas uma linha de código

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.

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-Zs]/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.

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-Zs]/g, "");

}

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

 

 

Quer conferir mais dicas sobre JavaScript? Clique aqui e veja mais dicas!