Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    33

    Identificare due valori i una stringa

    Ciao a tutti, avrei bisogno del vostro aiuto.
    Ho una stringa di questo tipo:
    "<input type="button" value="" idtag="" style="color:rgb(51, 156, 203); background-color:white; border:0px; padding:0px;">"

    avrei bisogno di utilizzare il metodo replace per sostituirla con i valori presi dal campo value e idtag, nella forma value - idtag.

    Ho capito che posso scrivere il replace in questo modo:

    codice:
    contenuto = contenuto.replace(/(<input type="button" value="" idtag="" style="color:rgb(51, 156, 203); background-color:white; border:0px; padding:0px;">)/gi, function($0,$1,$2){return "";});
    Ma non mi è ben chiaro come svilupparlo. Potete aiutarmi?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ma.... il replace sostituisce/cambia una stringa/testo tipo "Ciao Andrea" in "Ciao Luca". Se non sai tu cosa usare dubito che potrà dirtelo qualcuno sul forum, ma forse mi sbaglio e non ho capito la domanda
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    33
    Io vorrei utilizzare le espressioni regolari per acquisire i valori value e idtag della stringa, e poi usare il replace per sostituirli alla stringa.

    Credo bisogni fare una cosa del genere:
    codice:
    contenuto = contenuto.replace(/(<input type="button" value=)(.+) (idtag=)(.+)( style="color:rgb(51, 156, 203); background-color:white; border:0px; padding:0px;">) )/gi, function($0,$1,$2){return $2+"-"+$4;});
    Ma non funziona

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    A ok, come non detto ci litigo sempre con le regular non posso aiutarti.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    33
    Grazie lo stesso, attendo un'altra risposta

  6. #6
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Si può far tutto con le espressioni regolari, ma probabilmente questa è la strada sbagliata. Due domande:
    - Da dove proviene il valore della variabile contenuto?
    - Cosa ci devi fare di preciso?
    Tutto ciò che fai con jQuery puoi farlo meglio e con la metà del codice in puro JavaScript.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    33
    Allora per farla breve, l'utente inserisce del testo in un box, assieme a questo testo può inserire anche un hashtag, questo viene rappresentato tramite un pulsante. Prima di caricare il tutto devo convertire il pulsante in un collegamento ipertestuale. Per questo mi serve prelevare il valore di value e di idtag, per usarli come testo e indirizzo del collegamento.

  8. #8
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Non hai risposto alle domande. Quindi cavatela con le espressioni regolari (anche se per me è una follia)...:

    codice:
    // qui devi mettere tutti i caratteri che teoricamente possono capitare nell'argomento "sAttribute" e che entrerebbero in conflitto con i metacaratteri dell'espressione regolare; tendenzialmente puoi lasciarla così...
    
    var rMetaChars = /[\$\-\.]/;
    
    // creo una funzione
    
    function changeAttribute (sSource, sAttribute, sValue) {
    	return sSource.replace(new RegExp("(" + sAttribute.replace(rMetaChars, "\\$&") + "=)\"?[^\"\\s]*\"?([\\s>\/])", "i"), "$1\"" + sValue + "\"$2");
    }
    
    // la applico...
    
    var tuaStringa = "<input type=\"button\" value=\"\" idtag=\"\" style=\"color:rgb(51, 156, 203); background-color:white; border:0px; padding:0px;\">";
    
    tuaStringa = changeAttribute(tuaStringa, "value", "valoreCheVuoiTu");
    tuaStringa = changeAttribute(tuaStringa, "idtag", "idCheVuoiTu");
    
    alert(tuaStringa);
    Buona fortuna
    Tutto ciò che fai con jQuery puoi farlo meglio e con la metà del codice in puro JavaScript.

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    33
    Originariamente inviato da carlomarx
    Non hai risposto alle domande. Quindi cavatela con le espressioni regolari (anche se per me è una follia)...:

    codice:
    // qui devi mettere tutti i caratteri che teoricamente possono capitare nell'argomento "sAttribute" e che entrerebbero in conflitto con i metacaratteri dell'espressione regolare; tendenzialmente puoi lasciarla così...
    
    var rMetaChars = /[\$\-\.]/;
    
    // creo una funzione
    
    function changeAttribute (sSource, sAttribute, sValue) {
    	return sSource.replace(new RegExp("(" + sAttribute.replace(rMetaChars, "\\$&") + "=)\"?[^\"\\s]*\"?([\\s>\/])", "i"), "$1\"" + sValue + "\"$2");
    }
    
    // la applico...
    
    var tuaStringa = "<input type=\"button\" value=\"\" idtag=\"\" style=\"color:rgb(51, 156, 203); background-color:white; border:0px; padding:0px;\">";
    
    tuaStringa = changeAttribute(tuaStringa, "value", "valoreCheVuoiTu");
    tuaStringa = changeAttribute(tuaStringa, "idtag", "idCheVuoiTu");
    
    alert(tuaStringa);
    Buona fortuna
    Come non ho risposto alle tue domande? La provenienza del codice è un misto di testo e codice html scritto dall'utente, se ti interessa proviene da un iframe con designMode = "On" e viene letto tramite getelementbyid.

    Cosa ci devo fare? Credo di averlo spiegato, provo in un altro modo:
    Come ti ho spiegato il bottone è l'hashtag inserito da un utente. Nel codice del bottone ho inserito in value il suo nome, e in idtag l'id della pagina. Quindi devo creare un collegamento ipertestuale così composto.

    nome del tag

    Ti servono altri elementi?

  10. #10
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Originariamente inviato da mydemo
    Come non ho risposto alle tue domande? La provenienza del codice è un misto di testo e codice html scritto dall'utente, se ti interessa proviene da un iframe con designMode = "On" e viene letto tramite getelementbyid.
    Bene, va già meglio


    Originariamente inviato da mydemo
    Come ti ho spiegato il bottone è l'hashtag inserito da un utente. Nel codice del bottone ho inserito in value il suo nome, e in idtag l'id della pagina. Quindi devo creare un collegamento ipertestuale così composto.

    nome del tag

    Ti servono altri elementi?
    Sì. Se non ho capito male sostituisci il testo #blablabla con <input type="button" value="blablabla" idtag="[indirizzo che vai a pescare in un database tramite AJAX]" etc. etc. />. Giusto? Bene,
    1) Come la effettui questa sostituzione, con le espressioni regolari o attraverso gli oggetti del DOM?
    2) Sappi che "idtag" non è un attributo valido per una pagina HTML. O utilizzi gli attributi standard (id, class, etc.) oppure, se vuoi creare degli attributi personalizzati, devono essere preceduti dal prefisso "data-". Es.: <span data-idtag="ciao mondo"></span>.
    Tutto ciò che fai con jQuery puoi farlo meglio e con la metà del codice in puro JavaScript.

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.