P: ¿Como puedo comparar las palabras de un elemento textarea respecto a las palabras existentes en otro textarea?
R: Código PHP:
<html>
<head>
<script language="JavaScript">
function separa(sTxt, sSep){
var sTx2 = "";
var bPalabra = false;
for (var j = 0; j < sTxt.length; j++){
if (sSep.indexOf(sTxt.charAt(j)) != -1){
if (bPalabra) sTx2 += " ";
bPalabra = false;
} else {
bPalabra = true;
sTx2 += sTxt.charAt(j);
}
}
return sTx2;
}
function comunes(aIzq, aDer){
var i, j, nRes, sPal;
nRes = 0;
sPal = "";
for (i = 0; i < aIzq.length; i++)
for (j = 0; j < aDer.length; j++)
if (aIzq[i] == aDer[j])
if (sPal.indexOf(aIzq[i]) == -1){
nRes++;
sPal += " " + aIzq[i];
}
document.frm.comunes.value = String(nRes);
}
function soloEnA(aIzq, aDer){
var i, j, nRes, sPal, bPresente;
nRes = 0;
sPal = "";
for (i = 0; i < aIzq.length; i++){
bPresente = false;
for (j = 0; (j < aDer.length) && !bPresente; j++)
bPresente = (aIzq[i] == aDer[j])
if (!bPresente && (sPal.indexOf(aIzq[i]) == -1)){
nRes++;
sPal += " " + aIzq[i];
}
}
document.frm.soloA.value = String(nRes);
}
function soloEnB(aIzq, aDer){
var i, j, nRes, sPal, bPresente;
nRes = 0;
sPal = "";
for (i = 0; i < aDer.length; i++){
bPresente = false;
for (j = 0; (j < aIzq.length) && !bPresente; j++)
bPresente = (aDer[i] == aIzq[j])
if (!bPresente && (sPal.indexOf(aDer[i]) == -1)){
nRes++;
sPal += " " + aDer[i];
}
}
document.frm.soloB.value = String(nRes);
}
function calcula(){
var sIzq, sDer, aIzq, aDer;
sIzq = separa(document.frm.texto.value, ";.,:");
sDer = separa(document.frm.diccionario.value, ";.,:");
sIzq = sIzq.replace(/[rnf]/g, " ");
sDer = sDer.replace(/[rnf]/g, " ");
aIzq = sIzq.split(" ");
aDer = sDer.split(" ");
comunes(aIzq, aDer);
soloEnA(aIzq, aDer);
soloEnB(aIzq, aDer);
}
</script>
</head>
<body>
<form name="frm">
<table border="0">
<tr>
<td align="center">
Area A
</td>
<td align="center">
Area B
</td>
</tr>
<tr>
<td align="left">
<textarea name="texto" onkeyup="calcula()"></textarea>
</td>
<td align="right">
<textarea name="diccionario" onkeyup="calcula()"></textarea>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<table border="0">
<tr>
<td align="left">
En A y no en B
</td>
<td align="center">
Comunes
</td>
<td align="right">
En B y no en A
</td>
</tr>
<tr>
<td align="left">
<input type="text" name="soloA">
</td>
<td align="center">
<input type="text" name="comunes">
</td>
<td align="right">
<input type="text" name="soloB">
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</body>
</html>