Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    30

    splittare e controllare che in una stringa siano presenti solo alcuni caratteri

    Ciao a tutti!
    Ho bisogno di un aiuto su una funzione javascript. (posso usare anche ajax volendo).
    Ho un form che tramite un input text permette di inserire una serie di tag separati da spazi e ho bisogno di creare una funzione js che prenda tutto il valore dell'input text, lo splitti separando le stringhe quando c'è uno spazio e controlli che ogni stringa sia alfanumerica o contenga solo i caratteri: [+ - . _ ]. Quindi quando inserisco un tag tipo ciao? deve dare un errrore. Qualcuno può aiutarmi per favore?

    Questo è nel form:
    codice:
    
    <label id="label">Inserisci tag: </label><input name="tag" type="text" id="tag" value="" /> </p>
    Nel js ho fatto questo per ora:
    codice:
    $(document).ready( function(){
       
        $('input[name="tag"]').blur( validatesto ) ;
       
    } ) ;
    
    function validatesto() {
        var contenuto = $(this).val() ;
    }
    Grazie

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    hai spiegato che se viene inserito ciao deve dare errore.
    potresti spiegare cosa intendi per "una serie di tag" ?
    i soli caratteri permessi sono i 6 che hai scritto? [+-._]
    il controllo lo vuoi solo all'onblur?

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    30
    Ciao, scusami ti spiego meglio.
    Ho un form con una casella di testo dove ad esempio inserisco:

    ciao andiamo gioco libro ehi_dove ora+minuti

    ora devo prendere tutto, splittarlo in base agli spazi e quindi creare singoli tag (ciao, andiamo, gioco, libro, ehi_dove, ora+minuti). Questi tag devono essere stringhe alfanumeriche e possono contenere solo i caratteri [+-._].
    Quindi nel momento in cui io inserisco nel form:

    ehila tu? dove sei cosi.ciao

    tu? non deve considerarlo un tag valido in quanto contiene il ? che non è un carattere ammesso mentre gli altri li deve considerare tag validi quindi i tag saranno: ehila, dove, sei, cosi.ciao

  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    ti faccio un esempio per capire se ho capito
    codice:
    <script language="javascript">
    function tagValidi(str){
    	//cerca sequenze di caratteri alfanumerici e alcuni caratteri speciali che terminano con uno spazio o fine riga
    	var re=/([a-z0-9\[\+\-\._\]]+?)( |$)/gi
    	var matchTag=str.match(re);
    	var risultato='';
    	for(var strTag in matchTag){
    		//col replace tolgo lo spazio finale
    		risultato+=matchTag[strTag].replace(/ /g,'')+'
    ';
    	}
    	document.getElementById('divMsg').innerHTML=risultato;
    }
    </script>
    <form>
    <label id="label">Inserisci tag: </label><input name="tag" type="text" id="tag" value="" />
    
    
    <input type="button" value="tag validi" onclick="tagValidi(this.form.tag.value);">
    </form>
    <div id="divMsg"></div>

  5. #5
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    codice:
    function estraiTag (sList) {
    	if (/[^\s\w\.\+\-]/.test(sList)) {
    		alert("Uno o pi\u00F9 caratteri non sono validi.");
    		return;
    	}
    	return sList.trim().split(/\s+/);
    }
    
    var esempio = estraiTag("ciao mondo come stai"); // la funzione estraiTag restituisce un array!
    
    alert(esempio.join(", "));
    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.