Contare i caratteri user e dominio

Si lo so, è una prova che avevo fatto anche io, non va bene perché la lunghezza del dominio dipende da quella dell'user, io ho bisogno di fare i controlli indipendenti

Ciao,

variabile[0] per user

variabile[1] per il dominio

devi fare lo split sulla @


Valeria.
 
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>
 
Lo split c'è già, come le metto sto variabili che sto confuso:confused:

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];
 
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>
Ora va già meglio, riconosce la lunghezza di entrambi, ma al dominio non esce l'alert dell id
 
di quale alert parli?
non vedo alert nel tuo primo post
 
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];
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
 
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

Corretto è cosi:


Codice:
<script type="text/javascript">
var stringa = "[email protected]";
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.
 
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>
 
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>

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
 
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>

Ciao criric, + un controllo per il . cosi se trova il . dopo il primo controllo e per username accetta

[CODEl][email protected][CODEl]
 
e una if per il cursore
Codice:
if(dominio[1].length > 8)
   val.suoemail.value = val.suoemail.value.substring(0 ,max);
 
e una if per il cursore
Codice:
if(dominio[1].length > 8)
   val.suoemail.value = val.suoemail.value.substring(0 ,max);

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 =  8 + nuser + 1;  
                    if(dominio[1].length > 8)
                   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 + '');
                }
                    }
 
Ciao criric, + un controllo per il . cosi se trova il . dopo il primo controllo e per username accetta

[CODEl][email protected][CODEl]

Vale, ho già un codice che controlla la mail

PHP:
function validaMail() {
var f = 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;
}
 
Ciao,

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


:crying:


Passo la Palla.

Buon lavoro.

Un saluto, Valeria :byebye:
 
Se inizi con due @@ saltano i controlli
direi che si puo scartare questo script

avevi provato altre soluzioni?
 
Perché, spiegami, che c'è che non va?


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.
 

Discussioni simili