A través de ajax paso valores a la base de datos de ciertos campos que los usuarios rellenan. El caso es que necesitaba convertir los acentos de dichos campos a sus entidades en HTML ("á", "ñ", etc.) y luego de buscar un poco, preparé dos funciones para hacer el encode y decode basándome en expresiones regulares.
Me gustó mucho esa alternativa, por su rapidez y el mínimo uso de recursos del navegador. Estas son las funciones que ahora tengo:
Código HTML:
var accentEncode = function (tx)
{
var rp = String(tx);
//
rp = rp.replace(/á/g, 'á');
rp = rp.replace(/é/g, 'é');
rp = rp.replace(/í/g, 'í');
rp = rp.replace(/ó/g, 'ó');
rp = rp.replace(/ú/g, 'ú');
rp = rp.replace(/ñ/g, 'ñ');
rp = rp.replace(/ü/g, 'ü');
//
rp = rp.replace(/Á/g, 'Á');
rp = rp.replace(/É/g, 'É');
rp = rp.replace(/Í/g, 'Í');
rp = rp.replace(/Ó/g, 'Ó');
rp = rp.replace(/Ú/g, 'Ú');
rp = rp.replace(/Ñ/g, 'Ñ');
rp = rp.replace(/Ü/g, 'Ü');
//
return rp;
};
var accentDecode = function (tx)
{
var rp = String(tx);
//
rp = rp.replace(/á/g, 'á');
rp = rp.replace(/é/g, 'é');
rp = rp.replace(/í/g, 'í');
rp = rp.replace(/ó/g, 'ó');
rp = rp.replace(/ú/g, 'ú');
rp = rp.replace(/ñ/g, 'ñ');
rp = rp.replace(/ü/g, 'ü');
//
rp = rp.replace(/Á/g, 'Á');
rp = rp.replace(/É/g, 'É');
rp = rp.replace(/Í/g, 'Í');
rp = rp.replace(/Ó/g, 'Ó');
rp = rp.replace(/Ú/g, 'Ú');
rp = rp.replace(/&Ñtilde;/g, 'Ñ');
rp = rp.replace(/&Üuml;/g, 'Ü');
//
return rp;
};
Gracias de antemano a cualquier idea o ayuda que me puedan facilitar.


