Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    16

    REPLACE da veri intenditori...

    ragazzi, avrei bisogno di due codici semplici semplici :-)

    uno che faccia più o meno questo:
    cerca dentro una textarea tutti i nomi elencati nella variabile x
    (x='cane', gatto','topo','uccello'...)
    e sostituiscili con i corrispettivi della variabile y
    (y='CAGNOLINO','GATTINO','TOPOLINO,'UCCELLINO'...)

    e l'altro che faccia questo:
    cerca nella textarea il primo carattere '<' e cancella tutti i simili successivi '<', solo però fino a che non incontri il carattere opposto '>', proseguendo poi a fare lo stesso da quel punto fino alla fine del testo

    Spero di essermi fatto capire e che soprattutto ci sia qualcuno capace di risolverli
    GRAZIEEE

  2. #2
    Questo codice deve essere incluso per far funzionare gli altri due:
    codice:
    if (!Array.prototype.indexOf)
    {
      Array.prototype.indexOf = function(elt /*, from*/)
      {
        var len = this.length;
    
        var from = Number(arguments[1]) || 0;
        from = (from < 0)
             ? Math.ceil(from)
             : Math.floor(from);
        if (from < 0)
          from += len;
    
        for (; from < len; from++)
        {
          if (from in this &&
              this[from] === elt)
            return from;
        }
        return -1;
      };
    }
    Questo esegue il punto 1:
    codice:
    function sostituisci(str, find, replace) {
       var r = new RegExp(find.join("|"), "g"),
            f = function(m) {
              return replace[ find.indexOf(m) ];
            }
       return str.replace(r,f)
    }
    Questo esegue il punto 2:
    codice:
    function sostituisciTags(str) {
       var r = /<(.+?)>/g,
            f = function(m, o1) {
              return '<' + o1.replace(/</g, "") + '>';
            }
       return str.replace(r,f)
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    16
    MEGA69, SANTO SUBITO!

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    16
    il processo di beatificazione è momentaneamente bloccato
    potresti controllare il funzionamento dei codici e magare postarmi il codice html completo, io da ignorante non riesco a farli funzionare. e poi una cosa: nel punto 1 , sarò cieco, ma non vedo le due variaili (?) dove inserire la lista dei nomi da sostituire. mi affido a te, o a chiunque altro voglia risp. CIAO E GRAZIE!

  5. #5
    Originariamente inviato da remo54
    il processo di beatificazione è momentaneamente bloccato
    potresti controllare il funzionamento dei codici e magare postarmi il codice html completo, io da ignorante non riesco a farli funzionare. e poi una cosa: nel punto 1 , sarò cieco, ma non vedo le due variaili (?) dove inserire la lista dei nomi da sostituire. mi affido a te, o a chiunque altro voglia risp. CIAO E GRAZIE!
    Funzionano correttamente, ti faccio due esempi:
    codice:
    alert(sostituisci("mariomichelegiuseppe", ["mario", "giuseppe"], ["dario", "alessio"]));
    alert(sostituisciTags("<aaaa<sfsfs<>"));
    Visto che tu devi lavorare con una textarea devi modificare la sua proprietà value:
    codice:
    var t = document.getElementById("textareaId");
         t.value = sostituisci(t.value, ["a", "b", "c"], ["A", "B", "C"]);
         t.value = sostituisciTags(t.value);
    Il primo blocco di codice invece è semplicemente un normalizzazione per IE che non supporta l'indexOf degli array.


  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    16
    niente da fare, continua a darmi errori dovunque, parentesi che mancano, quantificatori imprevisti, oggetti che non sono oggetti... non so più cosa fare, evidentemente è colpa mia che oltre il copia e incolla non so andare.
    perciò non mi resta che rinnovare umilmente :rollo: :rollo: la richiesta di un codice completo, dove dover cambiare solo il contenuto delle variabili ('cane', 'gatto'...). ELP MI PLIIIS

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    16
    entrando nel particolare IE mi segnala questo...

    in:
    if (from in this &&
    // (cerca una parentesi che non c'è)


    in :
    f = function(m) { return replace[ find.indexOf(m) ];}
    // sostituisce, ma riporta f tale e quale a come è scritto il codice (function(m) { return...)

    e in :
    var r = /<(.+?)>/g,
    // mi da 'Quantificatore imprevisto'

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    16
    c'è qualcuno che mi aiuta?

  9. #9
    Prova così:
    codice:
    # inserisci le parole da cercare all'interno delle
    # parentesi suddivise dai pipe |
    rex = /\b(cane|gatto|topo|uccello)\b/g
    
    # costruisci l'oggetto mettendo come chiave le parole da cercare
    # e come valore le parole da sostiture
    var rep={'cane':'CAGNOLINO','gatto':'GATTINO','topo':'TOPOLINO','uccello':'UCCELLINO'};
    
    text_area = "cane gatto cane topo uccello";
    
    text_area=text_area.replace(rex,function(myStr,backRef){
    	return(rep[backRef])?rep[backRef]:backRef;
        })
    alert(txt);
    mentre per sostituire le parentesi angolari:
    codice:
    txt = '<nadids <Uno <due dsfsdf <tre sdsdf> asd <sdf <>';
    
    rex =/(<[^<>]*)</g;
    while(txt.match(rex))
    	txt=txt.replace(rex,"$1");
    alert(txt);
    dA .. foto di viaggio
    L'esperienza è il tipo di insegnante più difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    16
    oggi è il 23 novembre, si festeggia san Mega69, protettore dei programmatori imbranati...
    tutto sistemato. si trattava di un problema di incompatibilità col im mio IE 5.0. l'ho fatto girare su un altro PC e funziona a meraviglia. Il problema era solo che il primo file l'incompatibilità con i vecchi browser non la risolveva. :master:
    Mi resta solo un problema. quando le lettere da sostituire sono caratteri come '/' o '[', non le riconosce! cosa posso fare?

    PS grazie anakin. proverò anche i tuoi codici, magari quelli vanno pure sul mio pc

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 © 2024 vBulletin Solutions, Inc. All rights reserved.