Contare i caratteri user e dominio

Discussione in 'Javascript' iniziata da Shyson, 30 Settembre 2012.

Tag (etichette):
  1. Vale2

    Vale2 Utente Attivo

    Registrato:
    28 Maggio 2006
    Messaggi:
    446
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Occupazione:
    Ex Studente - Cerca collaborazione per Asp e Asp.N
    Località:
    Livorno
    Ciao,

    variabile[0] per user

    variabile[1] per il dominio

    devi fare lo split sulla @


    Valeria.
     
  2. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    ho memorizzato la lunghezza dell'user e lo aggiunta ad 1 che è la chiocciola e a 8 che è la lunghezza massima
    il ragionamento è sempre quello di prima ma con una variabile per la user
    Codice:
    <script>
                var nuser;
                function contaEmail(suoemail) {
                    var val = document.forms.mioform1;
                    var max=5  
                    if(suoemail.indexOf('@')<0) {
                        nuser = suoemail.length;
                        val.suoemail.value = val.suoemail.value.substring(0,max);
                        output = nuser > max ? "Username: max 5 caratteri" : '';
                    } 
                    else {
                        document.getElementById('contaUserDom').innerHTML = '';
                        max =  8 + nuser + 1;                     
                        val.suoemail.value = val.suoemail.value.substring(0 ,max);
                        output = suoemail.value > max ? "Dominio: max 8 caratteri" : '';
                    }
                    if(output.length != 0) { 
                        document.getElementById('contaUserDom').innerHTML = (output + '');
                    }
                }  
            </script>
    
     
  3. Shyson

    Shyson Utente Attivo

    Registrato:
    19 Agosto 2012
    Messaggi:
    1.111
    Mi Piace Ricevuti:
    1
    Punteggio:
    38
    Sesso:
    Maschio
    Lo split c'è già, come le metto sto variabili che sto confuso:confused:
     
  4. Vale2

    Vale2 Utente Attivo

    Registrato:
    28 Maggio 2006
    Messaggi:
    446
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Occupazione:
    Ex Studente - Cerca collaborazione per Asp e Asp.N
    Località:
    Livorno
    Dove splitti i caratteri prima di @ con [0] e dopo @ con [1]


    Codice:
    var variabile=document.nome_form.nomecampo.value.split('@')[0];
    
    e
    
    var variabile=document.nome_form.nomecampo.value.split('@')[1];
     
  5. Shyson

    Shyson Utente Attivo

    Registrato:
    19 Agosto 2012
    Messaggi:
    1.111
    Mi Piace Ricevuti:
    1
    Punteggio:
    38
    Sesso:
    Maschio
    Ora va già meglio, riconosce la lunghezza di entrambi, ma al dominio non esce l'alert dell id
     
  6. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    di quale alert parli?
    non vedo alert nel tuo primo post
     
  7. Shyson

    Shyson Utente Attivo

    Registrato:
    19 Agosto 2012
    Messaggi:
    1.111
    Mi Piace Ricevuti:
    1
    Punteggio:
    38
    Sesso:
    Maschio
    Per alert intend id document.getElementById('contaUserDom').innerHTML = (output + '');
     
  8. Shyson

    Shyson Utente Attivo

    Registrato:
    19 Agosto 2012
    Messaggi:
    1.111
    Mi Piace Ricevuti:
    1
    Punteggio:
    38
    Sesso:
    Maschio
    Vedo che l'ultimo codice che mi ha dato criric funziona, manca solo l'avviso che richiama l'id del dominio...poi non so quale va meglio
     
  9. Vale2

    Vale2 Utente Attivo

    Registrato:
    28 Maggio 2006
    Messaggi:
    446
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Occupazione:
    Ex Studente - Cerca collaborazione per Asp e Asp.N
    Località:
    Livorno
    Corretto è cosi:


    Codice:
    <script type="text/javascript">
    var stringa = "valeria@pippofranco.it";
    var splitta = stringa.split("@");
    var strl = splitta[0];
    var strlength = splitta[1];
    document.write("Caratteri inseriti per Username: "+strl.length+ " Username: " + strl.toString() + "<br>");
    document.write("Caratteri inseriti per il Dominio: "+strlength.length+ " Dominio " + strlength.toString());
    </script>
    Risultato:

    Caratteri inseriti per Username: 7 Username: valeria
    Caratteri inseriti per il Dominio: 14 Dominio pippofranco.it


    Valeria.
     
  10. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    aggiungo il pezzo che manca al mio
    HTML:
    <script>            
                var nuser;
                function contaEmail(suoemail) {
                    var val = document.forms.mioform1;
                    var max=5;
                    if(suoemail.indexOf('@')<0) {
                        nuser = suoemail.length;
                        val.suoemail.value = val.suoemail.value.substring(0,max);
                        output = nuser > max ? "Username: max 5 caratteri" : '';
                    } 
                    else {
                        document.getElementById('contaUserDom').innerHTML = '';
                        var dominio = val.suoemail.value.split('@');
                        max =  8 + nuser + 1;                     
                        val.suoemail.value = val.suoemail.value.substring(0 ,max);
                        output = dominio[1].length > 8 ? "Dominio: max 8 caratteri" : '';
                    }
                    if(output.length != 0) { 
                        document.getElementById('contaUserDom').innerHTML = (output + '');
                    }
                }  
            </script>
    
     
  11. Shyson

    Shyson Utente Attivo

    Registrato:
    19 Agosto 2012
    Messaggi:
    1.111
    Mi Piace Ricevuti:
    1
    Punteggio:
    38
    Sesso:
    Maschio
    Ora li riconosce:mavieni:

    nel fare le prove vedo che il cursore rimane sempre in fondo al dominio, non si lascia spostare dai tasti-freccia
     
  12. Vale2

    Vale2 Utente Attivo

    Registrato:
    28 Maggio 2006
    Messaggi:
    446
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Occupazione:
    Ex Studente - Cerca collaborazione per Asp e Asp.N
    Località:
    Livorno
    Ciao criric, + un controllo per il . cosi se trova il . dopo il primo controllo e per username accetta

    [CODEl]hhhhh@tuttomio.io.io.io.io.io.io.io[CODEl]
     
  13. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    e una if per il cursore
    Codice:
    if(dominio[1].length > 8)
       val.suoemail.value = val.suoemail.value.substring(0 ,max);
     
  14. Shyson

    Shyson Utente Attivo

    Registrato:
    19 Agosto 2012
    Messaggi:
    1.111
    Mi Piace Ricevuti:
    1
    Punteggio:
    38
    Sesso:
    Maschio
    Ok va ancor meglio, gli avvisi escono e l'inserimento si blocca, ho notato però una cosa: inserisco l'user e poi passo al dominio, e se poi torno all'user non mi blocca più l'inserimento, cioè, ne posso inserire fin che voglio

    PHP:
          var nuser;
                function 
    contaEmail(suoemail) {
                   var 
    val document.forms.mioform1;
                    var 
    max=5;
                    if(
    suoemail.indexOf('@')<0) {
                        
    nuser suoemail.length;
                        
    val.suoemail.value val.suoemail.value.substring(0,max);
                        
    output nuser max "Username: max 5 caratteri" '';
                    } 
                    else {
                        
    document.getElementById('contaUserDom').innerHTML '';
                        var 
    dominio val.suoemail.value.split('@');
                        
    max =  nuser 1;  
                        if(
    dominio[1].length 8)
                       
    val.suoemail.value val.suoemail.value.substring(,max);
                        
    output dominio[1].length "Dominio: max 8 caratteri" '';
                    }
                    if(
    output.length != 0) { 
                        
    document.getElementById('contaUserDom').innerHTML = (output '');
                    }
                        }
     
  15. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    Vero!
    forse è meglio ripensarne la logica
     
  16. Shyson

    Shyson Utente Attivo

    Registrato:
    19 Agosto 2012
    Messaggi:
    1.111
    Mi Piace Ricevuti:
    1
    Punteggio:
    38
    Sesso:
    Maschio
    Vale, ho già un codice che controlla la mail

    PHP:
    function validaMail() {
    var 
    document.forms.mioform1;
    if (
    f.suoemail.value.length != 0) { 
    var 
    reg = new RegExp("^([A-Za-z0-9!#$%&'*+\/=?^_~`{|}](([A-Za-z0-9!#$%&'*+\/=?^_~`{|}]*[.]?[A-Za-z0-9!#$%&'*+\/=?^_~`{|}]+))*([-]?[A-Za-z0-9!#$%&'*+\/=?^_~`{|}]+)?(([A-Za-z0-9!#$%&'*+\/=?^_~`{|}]*[.]?[A-Za-z0-9!#$%&'*+\/=?^_~`{|}]+))*@(.*)(\\.[a-z]{2,6}))$");
    if (!
    f.suoemail.value.match(reg)) {  
    document.getElementById('validaMail').innerHTML "Inserire una Mail valida";
    f.suoemail.focus();
    return 
    false;
    }
    else {
    document.getElementById('validaMail').innerHTML "";
    }  

    else {
    document.getElementById('validaMail').innerHTML "";
    }
    return 
    true;
    }
     
  17. Vale2

    Vale2 Utente Attivo

    Registrato:
    28 Maggio 2006
    Messaggi:
    446
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Occupazione:
    Ex Studente - Cerca collaborazione per Asp e Asp.N
    Località:
    Livorno
    Ciao,

    usi una RegExp per validare le mail e aggiungi anche questo controllo?


    :crying:


    Passo la Palla.

    Buon lavoro.

    Un saluto, Valeria :byebye:
     
  18. Shyson

    Shyson Utente Attivo

    Registrato:
    19 Agosto 2012
    Messaggi:
    1.111
    Mi Piace Ricevuti:
    1
    Punteggio:
    38
    Sesso:
    Maschio
    Perché, spiegami, che c'è che non va?
     
  19. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    Se inizi con due @@ saltano i controlli
    direi che si puo scartare questo script

    avevi provato altre soluzioni?
     
  20. Vale2

    Vale2 Utente Attivo

    Registrato:
    28 Maggio 2006
    Messaggi:
    446
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Occupazione:
    Ex Studente - Cerca collaborazione per Asp e Asp.N
    Località:
    Livorno

    Ciao,

    partendo dal fatto che con javascript puoi colo controllare l'inserimento dei dati da parte dell'utente, l'unico modo per vedere se chi ha inserito la mail è esatta e inviarla con un link per confermare, se la mail è corretta, con il link gli attivi il servizio, se è errata non lo abiliti e il mailer demon ti invia la mail per indirizzo inesistente.

    Se io mi trovo a testa con tutti quei controlli esco.

    Per la mail fai tutto con la RegExp quandi caratteri prima della @ quanti sono validi secondo le specifice RFC822 e gli stampi solo "inserire un'indirizzo email valido".

    Credo sia sufficiente.

    E' solo un parere.


    Valeria.
     
Sto caricando...

Condividi questa Pagina