Originariamente inviato da caruccis
- la regola $r applicata anke dopo il punto permette di inserire uno di questi tre caratteri [\._\-]? ed opzionalmente terminare con uno o + caretteri alfanumerici ([a-z0-9])* quindi se scrivo info@miodominio_aa_aa_.it lo accetta e penso che non sia valido.
hai ragione, non ci avevo mai pensato ... cmq l'intento e' di scoraggiare a scrivere emails non valide, non e' una funzione assoluta o risolutrice, questo solo per dirti che non devi fare mai affidamento su un controllo in sola preg soprattutto con dati come emails o siti


Originariamente inviato da caruccis
- mi sono permesso di modificarla così :
codice:
function checkMail( $m ) {
	// andr3a / HTML.IT
	$r = "([a-z0-9]+[\._\-]?){1,3}([a-z0-9])*";
	$rdominio = "([a-z0-9]+[\._\-]?){1,3}([a-z0-9])+";
	$r = "/(?i)^{$r}\@{$rdominio}\.[a-z]{2,6}$/";
	return preg_match($r, $m);
}
Nulla a togliere a nessuno di voi che siete fantastici , ma poiche' stamane mi sono svegliato col proposito di impapare le espressioni regolari, sono praticamente impazzito nel comprendere il codice di andr3a ....

Spero di non aver offeso nessuno
nessuna offesa ma devo contraddirti per questa funzione ... i domini possono avere solo caratteri alfanumerici ed un trattino:
http://www.nic.it/RA/domini/regole.html


ergo grazie per la segnalazione, verrai incluso nell' header di questa nuova versione
(che non e' comunque perfetta con le regole per i domini, vedro' se migliorarla ancora)
codice:
function checkMail( $m ) {
	// andr3a / HTML.IT / caruccis
	$r1 = "([a-z0-9]+[";
	$r2 = "\-]?){1,3}([a-z0-9])*";
	return preg_match("/(?i)^{$r1}\._{$r2}\@{$r1}{$r2}\.[a-z]{2,6}$/", $m);
}