Campo email

tgat

Nuovo Utente
3 Nov 2012
17
0
1
Salve a tutti :)
Premetto che sono nuovo con il javascript.
ho un modulo con 2 campi di cui il secondo è un campo email, riesco solo a
verificare se è stato compilato, ma come posso verificare se è presente il "@" e "."
ed in caso negativo bloccare l'invio del modulo tramite l'alert ?
Un grazie anticipato a chi vorrà rispondermi; di seguito il codice:

HTML:
<form name="modulo" id="modulo" onSubmit="return controllo();" method="post" action="paginadiprova.html"> 
Nome
<input name="nome" type="text" id="nome" size="30" /> 
<br /> 
Email
<input name="email" type="text" id="email" size="30" /> 
<br /> 
<input type="submit" name="Submit" value="Invia" /> 
</form>
<script language="JavaScript"> 
function controllo(){ 
with(document.modulo) { 
if(nome.value=="") { 
alert("Errore: compilare il campo NOME"); 
nome.focus(); 
return false; 
} 
if(email.value=="") { 
alert("Errore: compilare il campo email"); 
email.focus(); 
return false; 
} 
} 
return true; 
} 
</script>
 
Ultima modifica di un moderatore:

cavaliere123

Utente Attivo
31 Lug 2012
416
0
16
Semplicissimo almeno credo... provi con questa che chiaramente adatterà al suo scopo :

HTML:
  var iChars = "@" ;
    for ( var i = 0 ; i < data. length ; i ++ ) {
  	 if ( iChars. indexOf ( data. charAt ( i ) ) == - 1 ) {
  	   alert ( "Inserisci perfettamente la tua email" ) ;
  	 return false ;
  	 }

chiaramente la variabile data nel suo caso è la stringa di inserimento dati e questo codice controlla se è non è presente il carattere @ e il carattere & .... infatti il valore è = -1...

Spero di essere stato utile. Buona serata.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
scusate se mi intrometto, ma vedo una cosa che non mi quadra
action="paginadiprova.html">
la pagina che riceve i post non può essere html ma deve essere una pagina dinamica (es. paginadiprova.php o paginadiprova.asp)
poi ricorda che se è una cosa importante i controlli lato client in js possono essere molto scenografici, ma sono facilmente aggirabili, i controlli, per essere efficaci, devono essere lato server
 

tgat

Nuovo Utente
3 Nov 2012
17
0
1
grazie a tutti, ho risolto il seguente codice:
var ckEmail = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/
if(email.value=="") {
alert("Errore: compilare il campo email");
email.focus();
return false;
}else if(!ckEmail.test(email.value)) {
alert("Errore: Indirizzo email non valido ");
email.focus();
return false;

riguardo all'action era solo un test, grazie dinuovo
 

tgat

Nuovo Utente
3 Nov 2012
17
0
1
Semplicissimo almeno credo... provi con questa che chiaramente adatterà al suo scopo :

HTML:
  var iChars = "@" ;
    for ( var i = 0 ; i < data. length ; i ++ ) {
  	 if ( iChars. indexOf ( data. charAt ( i ) ) == - 1 ) {
  	   alert ( "Inserisci perfettamente la tua email" ) ;
  	 return false ;
  	 }

chiaramente la variabile data nel suo caso è la stringa di inserimento dati e questo codice controlla se è non è presente il carattere @ e il carattere & .... infatti il valore è = -1...

Spero di essere stato utile. Buona serata.
non l'ho capito, a me interessa sapere se sono presenti i caratteri "@" e "."
in caso negativo alert, grazie
 

cavaliere123

Utente Attivo
31 Lug 2012
416
0
16
La variabile : data, scritta da me nel suo caso è : nome.value, quindi il controllo che le ho postato controlla che se nella variabile è presente il carattere @ , se non lo trova da un alert....
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
non l'ho capito, a me interessa sapere se sono presenti i caratteri "@" e "."
in caso negativo alert, grazie

Ciao,

un indirizzo email comporta almeno un carattere, la @ almeno un carattere il . almeno un carattere

es:


se usi indexOff("@") hai tre opzioni per la ricerca della @ nel campo

== -1 controlla se la @ viene inserita in punto qualsiasi del campo

!= -1 disabilita l'inserimento della @ in tutto il campo

!= 0 la @ deve essere il primo carattere del campo

in una condizione di controllo if il risultato sono valori booleani true o false, la condizione è true se non sono rispettate le condizioni dichiarate.

False se lo sono.

Quindi è bene utilizzare una regexp (espressione regolare) per il controllo.

quello che ti hanno scritto va bene per la condizione: carattere @ carattere . minimo 2 massimo 4 caratteri per il dominio ma c'è un errore

Codice:
var ckEmail = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/

/^ inizio espressione di controllo

[a-zA-Z0-9._-] accetta tutti i caratteri Maiuscoli e minuscoli da A a Z numeri da 0 a 9 il . l'underscore _ il meno -

+@ obbligatoria la @ dopo almeno un carattere della precedente condizione

[a-zA-Z0-9.-] accetta tutti i caratteri Maiuscoli e minuscoli da A a Z numeri da 0 a 9 il . il meno - Errore accetta il . dopo la @


+\. obbligatorio il . dopo almeno un carattere dopo la @

[a-zA-Z] accetta tutti i caratteri Maiuscoli e minuscoli da A a Z dopo il .

{2,4} quantificatore minimo due caratteri per il dominio massimo quattro

$/fine espressione regolare.

A parte l'errore qua [a-zA-Z0-9.-]

Il codice è lo standard per il controllo di una mail anche se per il punto è bene usare il back-slash \. in una condizione di controllo [] quindi di tipo stringa.

La regexp basta sistemare gli errori, ma sconsiglio vivamente il solo controllo della @ e il .



Valeria.
 

tgat

Nuovo Utente
3 Nov 2012
17
0
1
Grazie Valeria per il tutorial :fonzie:
Ma insisto sul controllo della sola presenza dei caratteri "@" e ".", con indexOff mi è stato suggerito il sottostante codice ma non funziona

if(email.value=="") {
alert("Errore: compilare il campo email");
email.focus();
return false;
}else if(email.value.indexOf("@")!=-1 && email.value.indexOf(".")!=-1) {
alert("Errore: Indirizzo email non valido ");
email.focus();
return false;
}

Grazie
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
Grazie Valeria per il tutorial :fonzie:
Ma insisto sul controllo della sola presenza dei caratteri "@" e ".", con indexOff mi è stato suggerito il sottostante codice ma non funziona

if(email.value=="") {
alert("Errore: compilare il campo email");
email.focus();
return false;
}else if(email.value.indexOf("@")!=-1 && email.value.indexOf(".")!=-1) {
alert("Errore: Indirizzo email non valido ");
email.focus();
return false;
}

Grazie

Ciao,

che non funziona lo so,

ma il solo utilizzo di indexOf() validerebbe la mail solo con @. .@ ecc...

Usa una regexp.

Valeria.
 

tgat

Nuovo Utente
3 Nov 2012
17
0
1
Ciao,

che non funziona lo so,

ma il solo utilizzo di indexOf() validerebbe la mail solo con @. .@ ecc...

Usa una regexp.

Valeria.
potrei ricevere email da paesi che utilizzano caratteri non latini e/o accentati, pertanto vorrei controllare solo se sono presenti i caratteri @ e .
come posso fare ? il codice postato in precedenza non funziona perchè non mi fa il controllo
Grazie
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
Codice:
}else if((email.value.indexOf("@")==-1) || (email.value.indexOf(".")==-1)) {

V.
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
Come già detto una regexp

o uno split()

visto che la tua richiesta procede in altra sede,

buon proseguimento.

Valeria.
 

cavaliere123

Utente Attivo
31 Lug 2012
416
0
16
Ho trovato questo in rete.... non se ti sia utile :

HTML:
/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i

altrimenti vedi qua :
http://ex-parrot.com/~pdw/Mail-RFC822-Address.html
c'è ne è una miriade in rete....
Salve Valeria e ben ritrovata....
 
Ultima modifica:

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
Ho trovato questo in rete.... non se ti sia utile :

HTML:
/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i

altrimenti vedi qua :
http://ex-parrot.com/~pdw/Mail-RFC822-Address.html
c'è ne è una miriade in rete....
Salve Valeria e ben ritrovata....

Ciao Domenico, basta inserire i codici unicode, il blocco esatto per i caratteri, che include quindi anche le lettere accentate e strane di ogni nazione.

un blocco [] di circa 30 caratteri

:faraone: :elvis::elvis:

Valeria.
 

cavaliere123

Utente Attivo
31 Lug 2012
416
0
16
Ha appena risposto la Sig.na Valeria ad entrambi....

x Valeria.... ha ragione ma sinceramente non mi sono messo a controllarlo passo passo... :(
 

tgat

Nuovo Utente
3 Nov 2012
17
0
1
Innanzitutto grazie per le risposte, ma forse sono riuscito a spiegarmi,
esiste una formula che senza specificare tutti i singoli caratteri dice:
carattere qualsiasi, senza che vengano elencati, poi @
poi dinuovo carattere qualsiasi poi .
e poi dinuovo carattere qualsiasi
Non so se sono riuscito a spiegarmi, grazie
 
Discussioni simili
Autore Titolo Forum Risposte Data
ecosito Mailchimp: copiare l'email inserita nel form html nel primo campo del form di Mailchimp HTML e CSS 4
C controllo campo email e checkbox Javascript 18
G Valore del campo id maggiore di 9999 MySQL 0
S da casella di testo a campo tabella Database 0
M Vendo il mio sito web teknosurfng.com, che trasmette nel campo della tecnologia Compravendita siti e domini 0
F errore 1062 su campo nuovo MySQL 4
R Aprire maschera con Openform filtrando un campo testuale con un valore recuperato da un'altra maschera MS Access 10
D Visualizzazione pagina basata sul valore di un campo del database PHP 2
A pulsante di update campo mysql con javascript Javascript 2
M Creare un campo input select quantità di un numero intero prelevato dal db PHP 3
D riempire campo inserendo un valore in un altro campo PHP 2
S riflettere valore di campo input range in live Javascript 0
P Ricerca campo data PHP 1
M Aggiornare stesso campo in due tabelle PHP 0
U Campo vuoto data errore Fatal error: PHP 2
Alex_70 Aggiornare campo da un altro campo PHP 16
F Steps campo input field Javascript 1
N Chiave Primaria in Campo Calcolato Windows e Software 1
I Focus su un campo Javascript 9
Alex_70 Nascondere label tab se campo vuoto PHP 2
G Impostare suggerimenti campo text di un form Javascript 2
Shyson Inserire placeholder nel campo cerca PHP 5
B Campo ricerca domini HTML e CSS 4
D verifica codice fiscale persona fisica /aziendale stesso campo HTML e CSS 1
G Campo Not null a condizione MySQL 8
M [PHP] Compilare automaticamente il campo data PHP 5
M [PHP] Problemi di salvataggio su campo calcolato PHP 0
M [PHP] Salvare campo di una tabella in una variabile PHP 14
M [MySQL] CREARE UN LINK SU UN DETERMINATO CAMPO DI UNA TABELLA RISULTATO DI UNA QUERY SQL MySQL 3
D [ASP] Leggere Campo decimal MYSQL Classic ASP 1
S [ASP] SALVARE VALORE SELECT OPTION SU CAMPO TABELLA ACCESS Classic ASP 9
M [PHP] Drop down in campo select PHP 1
elpirata [RISOLTO][Javascript] Datapicker e autocompletamento campo input Javascript 2
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
elpirata [MYSQL] Schedulare evento per update del campo data su tabella MySQL 0
G Campo HTML input file con jQuery jQuery 0
D [MS Access] problemi con inserimento campo in una maschera MS Access 6
Arcadia [MS Access] Focus su campo specifico MS Access 1
A [MS Access] Pulsante per inserire allegati in campo maschera MS Access 0
L [Javascript] Drag and drop. Aggiornamento Campo Javascript 2
A [MySQL] Ottenere più risultati in un unico campo MySQL 7
A [MS Access] Somma Campi se in altro campo presente un determinato testo MS Access 1
Monital [PHP]Far riconoscere stringa o numerico epr creazione campo tabella PHP 6
Monital Funzione php e campo database come variabile PHP 6
C [PHP] Creare un Pulsante che ricopia valori di un campo in altro record PHP 4
G [Javascript] Campo a comparsa di select Javascript 0
A [Javascript] Somma di un campo in una tabella dinamica Javascript 0
L [PHP] case then e campo non riconosciuto PHP 0
A [PHP] Modificare campo database in base alla scelta dell'utente PHP 2
C [PHP] Estrapolare solo l'anno da una data di nascita inserita in un campo PHP 8

Discussioni simili