Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   валидация формы, поле email (https://javascript.ru/forum/misc/2475-validaciya-formy-pole-email.html)

vovasvv 31.12.2008 20:07

валидация формы, поле email
 
Всех с наступающим!!!!

Я нашел скрипт:

<script type="text/javascript"> 
function isEmailCorrect(formname, fieldname) { 
   
  var re = /^\w+([\.-]?\w+)*@(((([a-z0-9]{2,})|([a-z0-9][-][a-z0-9]+))[\.][a-z0-9])|([a-z0-9]+[-]?))+[a-z0-9]+\.([a-z]{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/i; 
//var re = /^\w+([\.-]?\w+)*@[a-z0-9]+([\.-]?[a-z0-9]+)+\.([a-z]{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/i;     
 
  if(re.test(eval("document.forms['"+formname+"']."+fieldname+".value"))) 
    return true; 
  else { 
    alert("Email is incorrect!"); 
    eval("document.forms['"+formname+"']."+fieldname+".focus()"); 
    return false; 
  } 
} 
</script>


1) Как его переделать в вид

<script type="text/javascript">
function isEmailCorrect () {
if (если введенный в форме email не удовлетворяет re) {
alert("Email is incorrect!");
return false;
}
return true;
}
</script>

2) Что означает re.test(eval("document.forms['"+formname+"']."+fieldname+".value")

а точнее "re.test" -?

3) Правильно ли я понимаю, что если в самой форме я хочу указать вывод функции как: return isEmailCorrect () - без аргументов, то в коде скрипта вместо "formname" и "fieldname" я должен указать соответствующие свои названия -?

Спасибо!

Андрей Параничев 31.12.2008 20:46

1) Не понял, оно и так в таком виде, фактически.
2) http://javascript.ru/tutorial/basic/regular-expression
3) Да.

vovasvv 01.01.2009 06:59

Спасибо. понял - что такое test по существу.
Непонятно, если я напишу

if(re.test(eval("document.forms['"+formname+"']."+fieldname+".value")))
return false;

это же не будет означать, что

если введенный в форме email НЕ удовлетворяет re, то возвращается false - или будет??? Если не будет, то как будет?

Андрей Параничев 01.01.2009 18:33

vovasvv,
Этот код означает, что если значение поля удовлетворяет регулярному выражению re, то будет возвращено false.

vovasvv 04.01.2009 17:50

Еще раз спасибо. Все равно НЕ!! понял - как написать:
"если значение поля НЕ УДОВЛЕТВОРЯЕТ регулярному выражению re, то будет возвращено false"?

vovasvv 04.01.2009 18:51

Все - сам спросил - сам ответил. Всем СПАСИБО!

Мое решение

re.test(eval("document.forma.email.value")) == false


Часовой пояс GMT +3, время: 17:08.