Dov'è l'errore nella seguente funzione?
codice:
String.prototype.XMLescape = function(){
replacement=new Array("è","é");
result=this;
for(i=0;i<replacement.length;i++){
result.replace(replacement[i],"&#"+replacement[i].charCodeAt(0)+";");
}
return result;
}
prova="è";
alert(prova.XMLescape());
Ho pensato che potrebbe derivare dal fatto che la funzione inserisce una stringa come primo argomento di replace anziché una espressione regolare, ma scrivendo ad esempio nel for
codice:
alert(result.replace(replacement[i],"&#"+replacement[i].charCodeAt(0)+";"));
il risultato al primo ingresso nel ciclo è comunque "&#232;".