Contare i caratteri user e dominio

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
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.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
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>
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
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];
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
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
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
di quale alert parli?
non vedo alert nel tuo primo post
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
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
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
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.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
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>
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
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
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
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]
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
e una if per il cursore
Codice:
if(dominio[1].length > 8)
   val.suoemail.value = val.suoemail.value.substring(0 ,max);
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
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 + '');
                }
                    }
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
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;
}
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
Ciao,

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


:crying:


Passo la Palla.

Buon lavoro.

Un saluto, Valeria :byebye:
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Se inizi con due @@ saltano i controlli
direi che si puo scartare questo script

avevi provato altre soluzioni?
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
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
Autore Titolo Forum Risposte Data
M Contare totale risultati tabella in un periodo di tempo PHP 5
A Contare gli elementi di un array PHP 13
maxnegri Contare sessioni aperte e creare condizione PHP 1
L contare record uguali in file csv PHP 4
B [MySQL] contare quante un oggetto e' presente MySQL 2
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
P [PHP] Contare quante volte uno stesso id si ripete nella tabella PHP 12
P [PHP] Contare i mesi con timestamp. PHP 8
A Contare n° totale oggetti da mysql PHP 5
C Contare numero record uguali Database 3
asevenx [Javascript] [AngularJS] contare opzioni selezionate di una select in un elenco ng-repeat Javascript 0
G [ACCESS2007]: contare li ultimi record con lo stesso valore in un campo, finchè il valore non cambia MS Access 2
xone [PHP] Contare numero dei giorni tra data_in e data_out PHP 11
zorro [PHP] Contare i record di una tabella PHP 6
F Contare le righe con php ad oggetti MySQL 0
asevenx Contare numero di righe in un form dinamico Javascript 5
F Miglior metodo per contare le righe di una query MySQL 2
S Contare valori uguali in una colonna PHP 2
N Contare post MySQL 2
L contare nodi figli di un determinato nodo madre XML 0
H Contare file presenti nella pagina PHP 3
S [RISOLTO]php contare numero delle query PHP 1
L Contare determinati valori che si ripetono in una tabella per un detemrinato ID MySQL 2
Monital Contare il numero di righe con php5 PHP 10
M contare record db con valore specifico PHP 1
D Contare numero div con una determinata classe Javascript 2
criric Contare le settimane di un mese Snippet PHP 3
nim contare record uguali in tabella PHP 10
anthares Contare record in tabella secondo certe condizioni PHP 21
Monital Contare valori uguali di un array e dividerli in una stringa PHP 12
nim contare frasi che si ripetono PHP 10
R Contare il numero di click su un link PHP 2
A contare iniziali dei nomi Java 3
G contare e sommare dopo JOIN Database 8
M non contare gli accessi dal tuo pc Supporto Mr.Webmaster 1
S Come contare i Download file .zip su html HTML e CSS 10
F Caratteri invisibili XML 4
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
B Non riesco a trovare i cognomi con i caratteri speciali in Access (Microsoft 365) MS Access 0
P Codifica caratteri speciali mysql php PHP 0
Z Caratteri speciali irriconoscibili PHP 1
R Tutto su utf-8 ma ancora problemi con i caratteri speciali in mysql MySQL 1
A eliminare caratteri speciali mettendo uno spazio PHP 0
A eliminare caratteri diacritici con codice ascii PHP 4
MarcoGrazia Eliminare in automatico i caratteri spuri all'inizio e alla fine di una stringa Snippet PHP 0
K [javascript] Tecnica per rilevare celle contenenti caratteri ricevute in dinamico Javascript 1
M Matrice di caratteri ( inseriti da tastiera ) ordinati in ordine alfabetico C/C++ 3
M [PHP] Troncare caratteri PHP 1
A [PHP] caratteri speciali PHP 14
A [PHP] Modifica caratteri di una query Oracle SQL PHP 0

Discussioni simili