Javascript: Tutorial para eliminar tildes (acentos), ñ y caracteres raros

tutorial gratis programacion javascript

Todo programador que se precie ha tenido alguna vez en su vida que enfrentarse con el problema de las tildes (acentos), eñes y caracteres extraños en cadenas. Hoy vamos a explicar como limpiar una cadena de texto usando javascript. Nuestro ejemplo sustituirá las ñ, vocales acentuadas por su equivalente sin acentuar y por la n. Además los espacios y algunos símbolos los sustituirá por nada. Con esta función podréis modificarla fácilmente para adaptarla a vuestras necesiades.

Tutorial: como limpiar cadena caracteres extraños, tildes y ñ en javascript

function getCleanedString(cadena){
   // Definimos los caracteres que queremos eliminar
   var specialChars = "!@#$^&%*()+=-[]\/{}|:<>?,.";

   // Los eliminamos todos
   for (var i = 0; i < specialChars.length; i++) {
       cadena= cadena.replace(new RegExp("\\" + specialChars[i], 'gi'), '');
   }   

   // Lo queremos devolver limpio en minusculas
   cadena = cadena.toLowerCase();

   // Quitamos espacios y los sustituimos por _ porque nos gusta mas asi
   cadena = cadena.replace(/ /g,"_");

   // Quitamos acentos y "ñ". Fijate en que va sin comillas el primer parametro
   cadena = cadena.replace(/á/gi,"a");
   cadena = cadena.replace(/é/gi,"e");
   cadena = cadena.replace(/í/gi,"i");
   cadena = cadena.replace(/ó/gi,"o");
   cadena = cadena.replace(/ú/gi,"u");
   cadena = cadena.replace(/ñ/gi,"n");
   return cadena;
}

Para limpiar una cadena simplemente tendremos que hacer:

var cadena = "óscar qué tal estás? ááééííóó";
cadena = getCleanedString(cadena);

Obtendremos: oscar_que_tal_estas_aaeeiioo

Nótese que en las expresiones regulares usamos esta sintaxis: /á/gi Con la "/" inicial y la "/" final indicamos el inicio y fin de la cadena a buscar. Con la "g" le indicamos que sea global, es decir, que busque la expresión regular en toda la cadena y no sólo en la primera ocurrencia. Con la "i" le indicamos que sea indiferente a mayusculas y minúsculas. En nuestro caso no es necesario porque hemos pasado a minusculas la cadena al principio (toLowerCase()), pero he preferido dejarlo por motivos educativos

Conclusión tutorial limpiar cadenas javascript

Con esta función que os hemos mostrado podéis tener la base para hacer todo tipo de sustituciones con expresiones regulares ya que tomad nota de que usamos /CADENA/gi que es una expresión regular muy sencilla que podemos complicar tanto como queramos por ejemplo:

/[áäà]/gi -> encontrará todas las letras a con los tres principales tipos de acentos

 

 

Votos totales: 188