Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di daneel
    Registrato dal
    Oct 2002
    Messaggi
    229

    [JS] Errore con replace

    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 "&#38;#232;".

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    633
    codice:
    String.prototype.XMLescape = function(){
    	var replacement=new Array("è","é"), result=this;
    	for(i=0;i<replacement.length;i++){
    		result = result.replace(new RegExp(replacement[i]),"&#"+replacement[i].charCodeAt(0)+";");
    	}
    	return result;
    }
    il replace potrebbe interpretare la stringa passata come primo argomento come una RegExp, ma per sicurezza passa una RegExp.

    ciauz
    Alcuni miei articoli in PRO.HTML.IT: JavaScript | DHTML | DOM
    Sviluppo : wedev | forum

  3. #3
    Utente di HTML.it L'avatar di daneel
    Registrato dal
    Oct 2002
    Messaggi
    229
    Grazie standard.
    Dove può essere l'errore in quest'altra funzione? (sep è definito esternamente)
    codice:
    String.prototype.msplit = function(){
    	var text=this;
    	for(i=0;i<arguments.length;i++) text.replace(new RegExp(arguments[i]),sep);
    	return text.split(sep);
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    633
    il replace ritorna il valore rimpiazzato, percui dovresti fare:

    text=text.replace(...)
    Alcuni miei articoli in PRO.HTML.IT: JavaScript | DHTML | DOM
    Sviluppo : wedev | forum

  5. #5
    Utente di HTML.it L'avatar di daneel
    Registrato dal
    Oct 2002
    Messaggi
    229
    Hai ragione...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.