Estoy preparando una función que me limpie de carácteres especiales alguna cadena de texto (string) que le pase. Escribí lo siguiente:
Código HTML:
var boton = document.getElementById('boton'), campo = document.getElementById('campo');
boton.onclick = function()
{
var ltr = ['à','á','â','ã','ä','ç','è','é','ê','ë','ì','í','î','ï','ñ','ò','ó','ô','õ','ö','ù','ú','û','ü','ý','ÿ','À','Á','Â','Ã','Ä','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ñ','Ò','Ó','Ô','Õ','Ö','Ù','Ú','Û','Ü','Ý',' ','-','_',',',':','"',"'",'&',';','@','.','>','<','|'];
var rpl = ['a','a','a','a','a','c','e','e','e','e','i','i','i','i','n','o','o','o','o','o','u','u','u','u','y','y','a','a','a','a','a','c','e','e','e','e','i','i','i','i','n','o','o','o','o','o','u','u','u','u','y','','','','','','','','','','','','','',''];
for (var i = 0, c = ltr.length, r = campo.value.toLowerCase(); i < c; i++)
{
var rg = new RegExp(ltr[i],'g');
r = r.replace(rg,rpl[i]);
};
console.log( r );
};
El problema es que la consola imprime en blanco, como si borrara todo el texto. ¿Alguna idea sobre qué puedo estar haciendo mal?
Tengo una función con comportamiento similar en PHP y va muy bien, así que traté de hacer la versión para javascript pero presenta ese problema.