Skip to content

Instantly share code, notes, and snippets.

@marioluan
Created October 10, 2013 18:27
Show Gist options
  • Save marioluan/6923123 to your computer and use it in GitHub Desktop.
Save marioluan/6923123 to your computer and use it in GitHub Desktop.
Funcao marota para remover acentos de strings. Foi utilizado expressao regular em cima de caracteres representados na base hexadecimal.
/**
* Remove acentos de caracteres
* @param {String} stringComAcento [string que contem os acentos]
* @return {String} [string sem acentos]
*/
function removerAcentos( newStringComAcento ) {
var string = newStringComAcento;
var mapaAcentosHex = {
a : /[\xE0-\xE6]/g,
e : /[\xE8-\xEB]/g,
i : /[\xEC-\xEF]/g,
o : /[\xF2-\xF6]/g,
u : /[\xF9-\xFC]/g,
c : /\xE7/g,
n : /\xF1/g
};
for ( var letra in mapaAcentosHex ) {
var expressaoRegular = mapaAcentosHex[letra];
string = string.replace( expressaoRegular, letra );
}
return string;
}
@dev-alves
Copy link

Muito bom! Parabéns!
Era o que eu estava precisando haha obrigado!

@lennonfuston
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: ´, ~, ^

Melhor solução possível!

@tcordeirofx
Copy link

tcordeirofx commented Jan 16, 2019

Não quero ser perfeccionista, a direção da solução está perfeita, porém faltaria esta solução remover a acentuação apenas, sem a composição da letra => `^~ ...

@tcordeirofx
Copy link

Não sei se é a melhor forma, mas atendeu aqui pra mim!

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

@Onnion
Copy link

Onnion commented Oct 16, 2019

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: ´, ~, ^

Obrigado (y)

@alexandregyn
Copy link

alexandregyn commented Nov 18, 2019

Muito obrigado ajudou de mais ainda mais os outro modelos abordado pela pessoal. (y)

@mauricioslk
Copy link

mauricioslk commented Mar 20, 2020

Ajudou bastante, valeu.

eu precisava deixar um texto simples com traços ai usei um replace e toLowerCase() junto
var replace = nameSH.replace(/\ /g, "-");
var finalString = replace.toLowerCase();

para-o-texto-ficar-assim

@adryssonlima
Copy link

Salvou aqui! Muito boa!

@geovanesilva
Copy link

Pessoal, cuidado com a função abaixo, não é compatível com android webview nem internet explorer

s.normalize('NFD')

Se o seu site for aberto através de um webview (pode ser aberto em apps onde seus anúncios aparecem)

Valide a existência da função em strings:

if("".normalize){ seuTexto.normalize('NFD')... }

@ogiovannyoliveira
Copy link

Usando esse script com a alteração do @lelotnk, fiz uma função para criar slugs em JS: https://gist.github.com/jesobreira/d769aab503847e014b3c

Me ajudou demais essa função! só tive que passá-la para Typescript... segue o link, caso alguém precise:
https://gist.github.com/GiovannyLucas/8af0365b9978c667f875e34741d49818

@angelamf
Copy link

angelamf commented Sep 4, 2020

E se eu quiser remover o conteúdo de uma table html inteira? Como que faço?

@jcmartim
Copy link

Muito bom, ajudou bastante!

@cesartagplus
Copy link

Muito Obrigado!

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