Вобщем есть поле для ввода email: <input type='text' name='email' > Нужно написать js который проверяет правильность ввода т.е [email protected]
Code: if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(f.email.value))) { alert('Введите правильный е-mail!');f.email.select(); return false; }
kolka, Code: javascript:alert( /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test('_@_.__') ) // Выведет: true Code: javascript:alert( /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test('[email protected]') ) // Выведет: false
Вобщем есть форма PHP: <form method='post' onSubmit = "return checkform(this); return isEmailCorrect(this,'email')"> E-mail:<input type='text' name='email' required> перед ней код: <script language='JavaScript' src="../js/reg.js"></script> в нем: function isEmailCorrect(formname, fieldname) { var re = /^[a-zA-Z0-9\-_](([a-z0-9\-_\.\+\&]?)+[a-z0-9])?\@((\w([a-zA-Z0-9\-_]+\w)?\.[a-z]{2,4})|(([01]?\d\d|2[0-4]\d|25[0-5])\.([01]?\d\d|2[0-4]\d|25[0-5])\.([01]?\d\d |2[0-4]\d|25[0-5])\.([01]?\d\d|2[0-4]\d|25[0-5]))|(localhost))$/i; if(re.test(eval("document.forms['"+formname+"']."+fieldname+".value"))) return true; else { alert("Email incorrect!"); eval("document.forms['"+formname+"']."+fieldname+".focus()"); return false; } } и траляля...
HTML: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <script language="javascript"> function isEmailCorrect(formname, fieldname) { var re = /^[a-zA-Z0-9\-_](([a-z0-9\-_\.\+\&]?)+[a-z0-9])?\@((\w([a-zA-Z0-9\-_]+\w)?\.[a-z]{2,4})|(([01]?\d\d|2[0-4]\d|25[0-5])\.([01]?\d\d|2[0-4]\d|25[0-5])\.([01]?\d\d |2[0-4]\d|25[0-5])\.([01]?\d\d|2[0-4]\d|25[0-5]))|(localhost))$/i; if(re.test(eval("document.forms['"+formname+"']."+fieldname+".value"))) return true; else { alert("Email incorrect!"); eval("document.forms['"+formname+"']."+fieldname+".focus()"); return false; } } </script> <form action="" name="contactForm" onsubmit="return isEmailCorrect('contactForm', 'email')"> Name: <input type="text" name="name"> Email: <input type="text" name="email"> <input type="submit" value="OK"> </form> </body> </html> все робит
Спасибо, а как поместить в форму 2 запроса: 1. onsubmit="return isEmailCorrect('contactForm', 'email')" 2.onsubmit="return checkform(this)" ?
Если не заморачиваться, то так: Code: onsubmit="return (isEmailCorrect('contactForm', 'email') && checkform(this))" Но разве функция checkform по логике не должна заодно проверять и корректность введённых данных?
PHP: /* Проверяет является ли строка адресом e-mail */ function strings_isemail($string) { return preg_match('%[-\.\w]+@[-\w]+(?:\.[-\w]+)+%', $string); }
if(!preg_match("|[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+\.[a-z0-9]|",$mail)) { $back = "Неправильно заполнена форма!"; $_SESSION['wrong'] = $back; echo "<html><head><meta http-equiv='Refresh' content='0 url=http://localhost/admin/'> </head></html>"; die(); }
На JS нет никакого смысла проверять, т.к. можно обойти. Вот чОткая проверка PHP: <?php $email = '[email protected]_rulez.com'; if(preg_match('~^[A-Za-z0-9_\.-]+@[A-Za-z0-9_\.-]+\.[a-zA-Z]+$~', $email)) { echo 'Yeaah. This mail is corrrect!'; } else { echo 'Ohhh... Are you crazy??'; } ?>
PHP: <?php if(preg_match('~^[A-Za-z0-9_\.-]+@[A-Za-z0-9_\.-]+\.[a-zA-Z]{2,6}$~', $email)) .... ?> А то адрес, [email protected] и [email protected] будут валидны +)