PDA

Просмотр полной версии : Нужен простой js


brasco2k
14.03.2008, 15:15
Вобщем есть поле для ввода email:
<input type='text' name='email' >

Нужно написать js который проверяет правильность ввода т.е text@text.com

FeraS
14.03.2008, 15:27
http://www.mexxs.net/reviews.php?file=25
http://web-utils.net/javascript/validate-email-form

kolka
14.03.2008, 16:05
if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(f.email.value))) {
alert('Введите правильный е-mail!');f.email.select();
return false;
}

astrologer
14.03.2008, 16:26
kolka, javascript:alert( /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test('_@_.__') )
// Выведет: true
javascript:alert( /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test('abc--abc@yandex.ru') )
// Выведет: false

brasco2k
14.03.2008, 22:01
подскажите плз с php , ато чото не один js не пашет.....

astrologer
14.03.2008, 22:03
подскажите плз с php , ато чото не один js не пашет.....А как ты его применяешь?

brasco2k
14.03.2008, 23:00
А как ты его применяешь?

Вобщем есть форма

<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;
}
}

и траляля...

FeraS
14.03.2008, 23:52
<!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"> &nbsp;
Email: <input type="text" name="email">
<input type="submit" value="OK">
</form>


</body>
</html>

все робит

brasco2k
15.03.2008, 12:52
<!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" >
Name: <input type="text" name="name"> &nbsp;
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)"

?

astrologer
15.03.2008, 16:20
Если не заморачиваться, то так:onsubmit="return (isEmailCorrect('contactForm', 'email') && checkform(this))"Но разве функция checkform по логике не должна заодно проверять и корректность введённых данных?

brasco2k
15.03.2008, 16:31
Если не заморачиваться, то так:onsubmit="return (isEmailCorrect('contactForm', 'email') && checkform(this))"Но разве функция checkform по логике не должна заодно проверять и корректность введённых данных?
Ну у меня просто там кое что другое она проверяяет)

Phm.phx
18.03.2008, 10:28
подскажите плз с php , ато чото не один js не пашет.....

/* Проверяет является ли строка адресом e-mail
*/
function strings_isemail($string)
{
return preg_match('%[-\.\w]+@[-\w]+(?:\.[-\w]+)+%', $string);
}

Painkiller
21.03.2008, 23:40
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(); }

NOmeR1
22.03.2008, 00:44
На JS нет никакого смысла проверять, т.к. можно обойти.
Вот чОткая проверка
<?php
$email = 'buuuugaaa.bu@vasya-pupkin.medvedev_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??';
}
?>

Isis
22.03.2008, 06:33
<?php
$email = 'buuuugaaa.bu@vasya-pupkin.medvedev_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
if(preg_match('~^[A-Za-z0-9_\.-]+@[A-Za-z0-9_\.-]+\.[a-zA-Z]{2,6}$~', $email)) ....
?>
А то адрес, xek@xek.a и xek@xek.aaaaaaaaaaaaaaaaaaaaaaaa будут валидны +)