Foros del Web » Programando para Internet » Javascript »

SOLUCIONADO: Cómo comparar cadenas con á y á

Estas en el tema de SOLUCIONADO: Cómo comparar cadenas con á y á en el foro de Javascript en Foros del Web. Hola a todos. Tengo una pregunta muy sencilla pero de la que desconozco la respuesta. Necesito comprarar dos cadenas de texto, una de ellas tiene ...
  #1 (permalink)  
Antiguo 20/05/2009, 02:24
 
Fecha de Ingreso: enero-2009
Ubicación: Elche
Mensajes: 59
Antigüedad: 15 años, 3 meses
Puntos: 3
SOLUCIONADO: Cómo comparar cadenas con á y á

Hola a todos.

Tengo una pregunta muy sencilla pero de la que desconozco la respuesta.

Necesito comprarar dos cadenas de texto, una de ellas tiene el código á mientras que la otra tiene la letra 'á', y el resto de las cadenas es igual.
La comparación entre estas cadenas debería devolver true, pero obviamente no lo hace.
¿Alguien sabe cómo podría compararlas transformándolas o algo así?
¿Existe alguna función similar al 'eval' que interprete el código para los acentos y otros caracteres extraños?

Muchas gracias por la ayuda.
__________________
Jada Web. Servicios informáticos.
http://www.jadaweb.es

Última edición por Bernad; 20/05/2009 a las 08:38 Razón: Solucionado
  #2 (permalink)  
Antiguo 20/05/2009, 08:37
 
Fecha de Ingreso: enero-2009
Ubicación: Elche
Mensajes: 59
Antigüedad: 15 años, 3 meses
Puntos: 3
Respuesta: Cómo comparar cadenas con á y á

Al final he tenido que fabricarme mi propia solución basándome en un ejemplo que puso Caricatos en este hilo:
http://www.forosdelweb.com/f13/carac...script-490069/


Entonces, para comparar estas dos cadenas tengo que cambiar la que tiene los caracteres 'á', 'è', etc. por la misma con sus correspondientes caracteres especiales, llamando a la función

if (htmlentities(cadena) == miCadena)


Éstas son las funciones:

Código:
function parejas(char, code){
 this.char = char;
 this.code = code;
}

var pares = new Array();
pares[0] = new parejas("€", "€");
pares[1] = new parejas(String.fromCharCode(225), "á"); //á
pares[2] = new parejas(String.fromCharCode(233), "é"); //é
pares[3] = new parejas(String.fromCharCode(237), "í"); //í
pares[4] = new parejas(String.fromCharCode(243), "ó"); //ó
pares[5] = new parejas(String.fromCharCode(250), "ú"); //ú
pares[6] = new parejas(String.fromCharCode(193), "Á"); //Á
pares[7] = new parejas(String.fromCharCode(201), "É"); //É
pares[8] = new parejas(String.fromCharCode(205), "Í"); //Í
pares[9] = new parejas(String.fromCharCode(211), "Ó"); //Ó
pares[10] = new parejas(String.fromCharCode(218), "Ú"); //Ú
pares[11] = new parejas(String.fromCharCode(224), "à"); //à
pares[12] = new parejas(String.fromCharCode(232), "è"); //è
pares[13] = new parejas(String.fromCharCode(236), "ì"); //ì
pares[14] = new parejas(String.fromCharCode(242), "ò"); //ò
pares[15] = new parejas(String.fromCharCode(249), "ù"); //ù
pares[16] = new parejas(String.fromCharCode(192), "À"); //À
pares[17] = new parejas(String.fromCharCode(200), "È"); //È
pares[18] = new parejas(String.fromCharCode(204), "Ì"); //Ì
pares[19] = new parejas(String.fromCharCode(210), "Ò"); //Ò
pares[20] = new parejas(String.fromCharCode(217), "Ù"); //Ù
pares[21] = new parejas(String.fromCharCode(228), "ä"); //ä
pares[22] = new parejas(String.fromCharCode(235), "ë"); //ë
pares[23] = new parejas(String.fromCharCode(239), "ï"); //ï
pares[24] = new parejas(String.fromCharCode(246), "ö"); //ö
pares[25] = new parejas(String.fromCharCode(252), "ü"); //ü
pares[26] = new parejas(String.fromCharCode(196), "Ä"); //Ä
pares[27] = new parejas(String.fromCharCode(203), "Ë"); //Ë
pares[28] = new parejas(String.fromCharCode(207), "Ï"); //Ï
pares[29] = new parejas(String.fromCharCode(214), "Ö"); //Ö
pares[30] = new parejas(String.fromCharCode(220), "Ü"); //Ü
pares[31] = new parejas(String.fromCharCode(226), "â"); //â
pares[32] = new parejas(String.fromCharCode(234), "ê"); //ê
pares[33] = new parejas(String.fromCharCode(238), "î"); //î
pares[34] = new parejas(String.fromCharCode(244), "ô"); //ô
pares[35] = new parejas(String.fromCharCode(251), "û"); //û
pares[36] = new parejas(String.fromCharCode(194), "Â"); //Â
pares[37] = new parejas(String.fromCharCode(202), "Ê"); //Ê
pares[38] = new parejas(String.fromCharCode(206), "Î"); //Î
pares[39] = new parejas(String.fromCharCode(212), "Ô"); //Ô
pares[40] = new parejas(String.fromCharCode(219), "Û"); //Û
pares[41] = new parejas(String.fromCharCode(231), "ç"); //ç
pares[42] = new parejas(String.fromCharCode(199), "Ç"); //Ç
pares[43] = new parejas(String.fromCharCode(191), "¿"); //¿
pares[44] = new parejas(String.fromCharCode(241), "ñ"); //ñ
pares[45] = new parejas(String.fromCharCode(209), "Ñ"); //Ñ
pares[46] = new parejas(String.fromCharCode(223), "ß"); //ß

function htmlentities(txt) {
	for (var i = 0, total = pares.length; i < total; i ++){
		txt = txt.replace(new RegExp(pares[i].char, "g"), pares[i].code)
	}
	return txt;
}

He tenido que usar la función String.fromCharCode(225) en lugar de escribir directamente el caracter "á" porque me fallaba en algunas aplicaciones, no sé todavía por qué.
Pero bueno, esta solución me ha funcionado, aunque sea un poco laboriosa, al menos he conseguido solventar el problema.

Saludos.
__________________
Jada Web. Servicios informáticos.
http://www.jadaweb.es
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:30.