Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Formattare testo contenuto in una textarea

    Ciao ragazzi sto cercando di formattare il testo contenuto in una textarea ma sorge un piccolo problema:

    codice:
    		var textAreaForm = document.getElementById('textAreaForm').value;
    		var accapo=(textAreaForm.indexOf("\r\n")!=-1)?"\r\n":
    			(textAreaForm.indexOf("\n")!=-1)?"\n":"\r";
    		var reg = new RegExp(accapo, 'g');
    		textAreaForm=textAreaForm.replace(reg,"
    
    ");
    		
    		alert(textAreaForm);
    		document.getElementById('test').innerHTML = textAreaForm;
    Fino a che io metto il tag
    che si chiude da solo ok ma se io la posto di br volessi mettere un paragrafo

    testo</p>

    come posso fare?

  2. #2
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    codice:
    textAreaForm = "
    
    " + textAreaForm.replace(reg,"<\/p>
    
    "); + "<\/p>";
    Ma prova anche questo script

  3. #3
    Grazie mille sei un grande! Funziona alla perfezione, domani mi guardo bene quello script che mi hai linkato!

    Vorrei solo aggiungere una cosa: secondo te se volessi controllare se ci sono

    vuoti ed eliminarli come mi consiglieresti di fare? Perché se un utente mette due spazi vuoti non voglio avere dei tag in giro senza senso..

  4. #4
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Io magari mi regolerei diversamente, trasformerei in
    gli accapo singoli, e in </p>

    quelli doppi, ignorando tutti gli altri (tripli quadrupli etc). E ridurrei tutte quelle righe di codice a una riga soltanto, così:

    codice:
    document.getElementById("test").innerHTML = "
    
    " + document.getElementById("textAreaForm").value.replace(/\r/g, "").replace(/(?:\n *){2,}/g, "<\/p>
    
    ").replace(/\n/g, "<br \/>") + "<\/p>";

  5. #5
    carlo grazie mille per il tuo aiuto, mi è stato veramente tanto tanto utile!!

    Ho visto il tuo script per il textEditor e devo dire che hai fatto un lavoro favoloso, si può utilizzare tranquillamente?

    Vorrei alcune informazioni:
    - le immagini da dove le prende direttamente dal client?(ma questa è la cosa più banale tanto si potrebbero personalizzare)
    - come mi converrebbe fare il submit del form?

    grazie mille per la disponibilità!

  6. #6
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Originariamente inviato da webking2003
    Ho visto il tuo script per il textEditor e devo dire che hai fatto un lavoro favoloso, si può utilizzare tranquillamente?
    Sì, sta lì apposta

    Originariamente inviato da webking2003
    Vorrei alcune informazioni:
    - le immagini da dove le prende direttamente dal client?(ma questa è la cosa più banale tanto si potrebbero personalizzare)
    No, le immagini sono contenute all'interno del documento codificate in data URI scheme.

    Originariamente inviato da webking2003
    - come mi converrebbe fare il submit del form?
    <input type="submit" value="Invia" />

    Originariamente inviato da webking2003
    grazie mille per la disponibilità!
    Figurati

  7. #7
    approfitto ancora della tua pazienza per una domanda...

    Al submit vorrei fare dei controlli lato client per mandare dei messaggi immediati (che poi replicherò lato server in PHP)
    i controlli che vorrei fare sul testo sono questi:

    - controllo che la textarea non sia vuota
    - controllo dell' esistenza di un link e nel caso trasformarlo in cliccabile
    - controllare se ci sono spazi e nel caso mettere il testo tra

    </p>
    - eliminare eventuali tag vuoti
    - fare dei controlli di sicurezza (Accetto consigli)

    allora io ho fatto in questo modo:

    codice:
    var textAreaForm = document.getElementById('textAreaForm');
    		
    if(textAreaForm.value != ''){
    var testoCorretto  = textAreaForm.value;	
    		
    testoCorretto = htmlEntities(testoCorretto); 
    // devo far diventare link cliccabili tutte le url che trovo all'interno della textarea
    testoCorretto = testoCorretto.replace(/(http|https|ftp|ftps):\/\/(.*?)(\s|\n|[,.?!](\s|\n)|$)/g, "<a href=\"$1://$2\" rel=\"nofollow\">$1://$2</a>$3");	
    		
    //al posto degli spazi metto i paragrafi
    testoCorretto = "
    
    " + testoCorretto.replace(/\r/g, "").replace(/(?:\n *){2,}/g, "<\/p>
    
    ").replace(/\n/g, "<br \/>") + "<\/p>";
    		
    // Eliminazione di tutti i tag vuoti
    var pattern= /<[^\/>]*>([\s]?)*<\/[^>]*>/;
    testoCorretto = testoCorretto.replace(pattern, '');
    }
    else{
    testoCorretto = textAreaForm;
    }
    document.getElementById('test').innerHTML = testoCorretto;
    
    
     function htmlEntities(str) {
        return String(str).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
    }
    Allora fino al punto 4 penso di averlo fatto solo che ho un problema....
    se io scrivo un link del tipo http://www.miosito.com
    la funzione mi crea correttamente il link cliccabile, ma se io scrivessi un tag
    http://www.miosito.com
    succede una cosa stratosferica(http://www.miosito.com">http//www.miosito.com%3C/a%3E)...

    come pensi che debba trattare questi controlli?
    Grazie mille


    PS Ho aggiunto questo alla 4 riga:
    codice:
    testoCorretto = testoCorretto.replace(/([<>"])/g, " $1 ");
    In questo modo non mi parsa i tag ma secondo te è un modo giusto per trattare l'argomento?

  8. #8
    Effettivamente a mente lucida stavo pensando che tutti questi controlli è inutile farli in Javascript quando posso tranquillamente farli in php quando ricevo i dati....

    Ma quali controlli di sicurezza devo fare per inviare una cosa del genere per non avere falle nel codice?

  9. #9
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Ti conviene usare quell'editor, corregge automaticamente il codice HTML scritto male.

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.