Skip to content

Instantly share code, notes, and snippets.

@hertz1
Last active September 29, 2022 16:21
Show Gist options
  • Star 33 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save hertz1/686e90aeffb4d166ab1a to your computer and use it in GitHub Desktop.
Save hertz1/686e90aeffb4d166ab1a to your computer and use it in GitHub Desktop.
Função simples e eficiente para remover todos os tipos de acentos da língua portuguesa.
/**
* Remove acentos de strings
* @param {String} string acentuada
* @return {String} string sem acento
*/
var map={"â":"a","Â":"A","à":"a","À":"A","á":"a","Á":"A","ã":"a","Ã":"A","ê":"e","Ê":"E","è":"e","È":"E","é":"e","É":"E","î":"i","Î":"I","ì":"i","Ì":"I","í":"i","Í":"I","õ":"o","Õ":"O","ô":"o","Ô":"O","ò":"o","Ò":"O","ó":"o","Ó":"O","ü":"u","Ü":"U","û":"u","Û":"U","ú":"u","Ú":"U","ù":"u","Ù":"U","ç":"c","Ç":"C"};
function removerAcentos(s){ return s.replace(/[\W\[\] ]/g,function(a){return map[a]||a}) };
@insign
Copy link

insign commented Sep 22, 2015

Funcionou perfeitamente.

@wwwmarcos
Copy link

Obrigado, ajudou muito 😄

@ErickPetru
Copy link

Abordagem muito interessante, não tinha visto ainda.

@elderbernini
Copy link

Muito bom, perfeito!

@alefhsousa
Copy link

com ES6 fica mais fácil fazer essa alteração:

function removerAcentos(s) {
  return s.normalize('NFD').replace(/[\u0300-\u036f]/g, "")
}

/[\u0300-\u036f]/g esse trecho de código é uma expressão regular que pega o range dos acentos: ´, ~, ^

@gufigueiredo
Copy link

gufigueiredo commented Jun 13, 2018

@alefhsousa sua função não substitui a acentuação, ela remove o caractere da string. Acho que o objetivo aqui é substituir por exemplo "ã" por "a"

@JorgeMadson
Copy link

JorgeMadson commented Jun 21, 2019

Essa função ficou muito boa de ler, publiquei como resposta no stackoverflow que me trouxe até aqui.

https://pt.stackoverflow.com/questions/237762/remover-acentos-javascript/392565#392565

@yuritoledo
Copy link

yuritoledo commented Oct 14, 2019

const removeAcentos = str => str.normalize('NFD').replace(/[\u0300-\u036f]/g, "")

funciona extremamente bem.

@brunoluann
Copy link

Excelente trabalho, @hertz1.

@robsonsky
Copy link

boa!

@leovargasdev
Copy link

Valeu aí @yuritoledo e @alefhsousa funcionou perfeitamente!

@gufigueiredo esse método não removeu os caracteres, por incrível que pareça kk

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment