Código PHP:
function vMail(ce) {
var okem= ce.email.value;
var localOK = /^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$/;
var ipOK = /^[?[0-9.]+]?$/;
var dominoOK = /^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$/;
// El email consta de dos partes dividas por @
var email_array = okem.split('@');
if (email_array.length < 2 || email_array.length > 2) {
alert("La dirección de email 1 ("+ email_array.length +") no es válida.");
document.forms.sendmail.email.focus();
return (false);
}
// Incorrecto número de caracteres en alguna de las dos partes
if (email_array[0].length < 1 || email_array[1].length < 1) {
alert("La dirección de email 2 ("+ email_array[0].length +") -- ("+ email_array[1].length +") no es válida.");
document.forms.sendmail.email.focus();
return (false);
}
var local_array = email_array[0].split('.');
for (i = 0; i < local_array.length; i++)
{
if (!localOK.test(local_array[i])) {
alert("La dirección de email 3 ("+ local_array[i] +") no es válida.");
document.forms.sendmail.email.focus();
return (false);
}
}
// Se revisa si el dominio es una IP. Si no, debe ser un nombre de dominio válido
if (!ipOK.test(okem)) {
var dominio_array = email_array[1].split('.');
// Incorrecto número de secciones por exceso o defecto para ser un dominio
if (dominio_array.length < 2 || dominio_array.length > 3) {
alert("La dirección de email 4 ("+ dominio_array.length +") no es válida.");
document.forms.sendmail.email.focus();
return (false);
}
for (i = 0; i < dominio_array.length; i++)
{
if (!dominoOK.test(dominio_array[i])) {
alert("La dirección de email 5 ("+ dominio_array[i] +") no es válida.");
document.forms.sendmail.email.focus();
return (false);
}
}
}
else
return (true)
}
Mismo código en asp