Contare i caratteri user e dominio

Se inizi con due @@ saltano i controlli
direi che si puo scartare questo script

avevi provato altre soluzioni?

Come ti dicevo, questo andrebbe bene ma se tolgo alert( output + '' ); e metto l'id, non va

PHP:
function contaEmail(suoemail) {
var output = '';
if(suoemail.indexOf('@')<0) {
output = suoemail.length > 5 ? 'Username: max 5 caratteri' : null;
} 
else {
var dominio = suoemail.split('@')[1];
output = dominio.length > 8 ? 'Dominio: max 8 caratteri' : null;
}
if(output.length != 0) { 
alert( output + '' );
}
}
 
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.

A me il controllo js serve solo per la lunghezza di user e dominio
 
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.

Dici che questo sarebbe sufficiente?

PHP:
function contaEmail() {
var val = document.forms.mioform1;
max=20
if (val.suoemail.value.length > max) {
val.suoemail.value = val.suoemail.value.substring(0,max);
document.getElementById('contaEmail').innerHTML = "Mail: max 20 caratteri";
} 
else {
document.getElementById('contaEmail').innerHTML = "";
}
 }
 
Ciao,

perchè una espressione regolare non è in grado di controllare i caratteri inseriti prima e dopo la @ compresa la lunghezza.


V.
 
Dici che questo sarebbe sufficiente?

PHP:
function contaEmail() {
var val = document.forms.mioform1;
max=20
if (val.suoemail.value.length > max) {
val.suoemail.value = val.suoemail.value.substring(0,max);
document.getElementById('contaEmail').innerHTML = "Mail: max 20 caratteri";
} 
else {
document.getElementById('contaEmail').innerHTML = "";
}
 }


controlli solo la lunghezza dei caratteri se basta per il tuo scopo.

V.
 
e mettergli 2 campi?
HTML:
<input type='text' name='user'/> @ <input type='text' name='dominio'/>
 
e mettergli 2 campi?
HTML:
<input type='text' name='user'/> @ <input type='text' name='dominio'/>
Non saprei...sto pensando se ne vale veramente la pena mettere quel codice e se potrebbe essere davvero utile quel controllo per l'utente, considerando che in base alle specifiche l'user deve avere una lungh. max 64 caratteri + @ e il dominio di 255 per un totale di 320.

Chi mai metterebbe una lunghezza simile?

Ma è anche vero che il dominio può essere anche un url web assoluto il quale può superare i 2000 caratteri.
 
Ciao,

riprendo discussione, usi una RegExp per validare una mail usa i quantificatori per delimitare es: quanti caratteri minimi devono essere inseriti prima della @

Valeria.
Potrei fare anche così, sto provando ma non trova il delimitatore a tutto il blocco prima della chiocciola

PHP:
(([A-Za-z0-9!#$%&'*+\/=?^_~`{|}](([A-Za-z0-9!#$%&'*+\/=?^_~`{|}]*[.]?[A-Za-z0-9!#$%&'*+\/=?^_~`{|}]+))*([-]?[A-Za-z0-9!#$%&'*+\/=?^_~`{|}]+)?(([A-Za-z0-9!#$%&'*+\/=?^_~`{|}]*[.]?[A-Za-z0-9!#$%&'*+\/=?^_~`{|}]+))*){0,5}@...
 
Ultima modifica:
Potrei fare anche così, sto provando ma non trova il delimitatore a tutto il blocco prima della chiocciola

PHP:
(([A-Za-z0-9!#$%&'*+\/=?^_~`{|}](([A-Za-z0-9!#$%&'*+\/=?^_~`{|}]*[.]?[A-Za-z0-9!#$%&'*+\/=?^_~`{|}]+))*([-]?[A-Za-z0-9!#$%&'*+\/=?^_~`{|}]+)?(([A-Za-z0-9!#$%&'*+\/=?^_~`{|}]*[.]?[A-Za-z0-9!#$%&'*+\/=?^_~`{|}]+))*){0,5}@...

In che senso non trova, manca la parte finale della Reg, la @ sai dove si trova.
 
Vale, sai che faccio? Controllo solo la lunghezza dell'username e uso questo codice, ma a video mi scrive null

PHP:
// Conta lunghezza username
function contaUser(suoemail) {
var val = document.forms.mioform1;
var output = '';
max=5
if(suoemail.indexOf('@')<0) {
val.suoemail.value = val.suoemail.value.substring(0,max);
output = suoemail.length > max ? "Username: max 5 caratteri" : null;
document.getElementById('contaUser').innerHTML = (output + '');
} 
 }

onkeyup="contaUser(this.value);...
 
Ho modificato, penso che terrò questo, l'unica cosa che mi manca è fa sparire l'avviso quando si inserisce la chiocciola

PHP:
// Conta lunghezza username
function contaUser(suoemail) {
var val = document.forms.mioform1;
var output = '';
max=5
if(suoemail.indexOf('@')<0) {
val.suoemail.value = val.suoemail.value.substring(0,max);
output = suoemail.length > max ? "Username: max 5 caratteri" : '';
document.getElementById('contaUser').innerHTML = (output + '');
} 
 }
 
Ho modificato, penso che terrò questo, l'unica cosa che mi manca è fa sparire l'avviso quando si inserisce la chiocciola

PHP:
// Conta lunghezza username
function contaUser(suoemail) {
var val = document.forms.mioform1;
var output = '';
max=5
if(suoemail.indexOf('@')<0) {
val.suoemail.value = val.suoemail.value.substring(0,max);
output = suoemail.length > max ? "Username: max 5 caratteri" : '';
document.getElementById('contaUser').innerHTML = (output + '');
} 
 }

...ma ho risolto anche questo aggiungendo un else:

PHP:
// Conta lunghezza username
function contaUser(suoemail) {
var val = document.forms.mioform1;
var output = '';
max=5
if(suoemail.indexOf('@')<0) {
val.suoemail.value = val.suoemail.value.substring(0,max);
output = suoemail.length > max ? "&bull;&nbsp;&nbsp;Username: max 5 caratteri" : '';
document.getElementById('contaUser').innerHTML = (output + '');
}
 else {
document.getElementById('contaUser').innerHTML = "";
} 
 }

Ultima cosa che rimane da sistemare è che quando arrivo al limite max totale della mail e torno all'user, questo mi permette di inserire altri caratteri anche se ero al limite massimo.
 
Non riesco proprio a sistemare questa ultima cosa...ci siete ancora?
 
L'ho modificato ancora ma non risolvo

PHP:
// Conta lunghezza username
function contaUser(suoemail) {
var val = document.forms.mioform1;
max=5
if(suoemail.indexOf('@')<0) {
if(val.suoemail.value.length > max) {
val.suoemail.value = val.suoemail.value.substring(0,max);
document.getElementById('contaUser').innerHTML = "Username: max 5 caratteri";
}
 }
else {
document.getElementById('contaUser').innerHTML = "";
} 
 }
 
Ultima modifica:

Discussioni simili