Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/05/2009, 08:37
Bernad
 
Fecha de Ingreso: enero-2009
Ubicación: Elche
Mensajes: 59
Antigüedad: 15 años, 4 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