Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Форма проверки


Автор: jenek56 24.4.2008, 07:45
Добрый день!
Помогите пожайлуста, переписать скрипт на провекру регистрации.
Скрипт должен далать:
1. проверять имя (не больше 20 символов)
2. проверять пароль (не больше 20 символов)
3. проверять эл.почту (проверить если точка стоит, если "собака" стоит, и где стоит собака. Если собака стоит в начале то не правильно.)
4. и проверять оба пароля, если они схожи.

Половину этого я сделал, но дальше застрял (на эл.почте)
Помогите пожайлуста.
Код

<script language="javascript">
   //<!--
  function disp_alert()
  {
   alert("!ההרשמה עוד לא מוכנה")
  }
  //-->
 </script>

 <script language="javascript">
  function register()
  {
   if (document.reg.name.value=="")
   {
    alert ("הכנס שם");
   }
   else
   if (document.reg.last.value=="")
   {
    alert ("הכנס שם משפחה");
   }
   else
   if (document.reg.password.value=="")
   {
    alert ("הכנס סיסמא");
   }
   else
   if (document.reg.password.lenght<5)
   {
    alert ("הסיסמה קצרה מדי");
   }
   else
   if (document.reg.password_c=="")
   {
    alert ("הכנס אימות סיסמא");
   }
   else
   if (document.reg.password!=document.reg.password_c)
   {
    alert ("האימות לא תואם את המקור");
   }
   else
   if (document.reg.email.value=="")
   {
    alert ("הכנס אי-מייל");
   }
   else
   if (document.reg.email!="")
   {
    if (document.reg.email.indexOf("@")==-1)
    {
     alert ("חסר שטרודל באימייל");
    }
    if (document.reg.email.indexOf("@")==0)
    {
     alert ("שטרודל לא יכול להיות ראשון באימייל");
    }
    if (document.reg.email.indexOf(".")==-1)
    {
     alert ("חסרה נקודה באימייל");
    }
    if (document.reg.email.indexOf(".")==0)
    {
     alert ("נקודה לא יכולה להיות ראשונה באימייל");
    }
   }
  }
 </script>


Код

<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<pre>
<FORM name="reg" dir=rtl>
  <input type=text name="name" maxlenght="20"> :שם 
  <font color="red" size="1">מקסימום 20 תווים</font>
  <input type=text name="last" maxlenght="20"> :שם משפחה
  <font color="red" size="1">מקסימום 20 תווים</font>
  <input type=text name="email" maxlenght="30"> :דואר אלקטרוני
  <font color="red" size="1">מקסימום 30 תווים</font>
  <select name="city">           :יישוב
         <OPTION>
         <OPTION>חיפה
         <OPTION>תל-אביב
         <OPTION>אשדוד
         <OPTION>אילת
         <OPTION>ירושלים
         <OPTION>טבריה
         <OPTION>חולון
        </select>

  <INPUT TYPE=TEXT name="login" maxlenght="20"> :שם משתמש
  <font color="red" size="1">מקסימום 20 תווים, רק אותיות אנגליות</font>
  <input type=password name="password" maxlenght="20">  :סיסמא
  <font color="red" size="1">בין-8 ל-20 תווים</font>
  <input type=password name="password_c" maxlenght="20">  :שוב סיסמא
    <br>
                                          :קצת מידע על עצמך
               <TEXTAREA NAME="COMMENTS" ROWS=15 COLS=65 maxlenght="1500">
   </TEXTAREA>
    <br>
                                        <input type=submit value=" הרשם "  onclick=register()>        <input type="reset" value=" נקה " name="reset">
  </FORM>
</pre>
</td>
</tr>
</table>

Автор: jenek56 25.4.2008, 14:28
Ну помогите пожайлуста.

Автор: IDVsbruck 26.4.2008, 00:55
Электронную почту повесь на регулярное выражение.
Хотя есть много мнений, но я делаю всегда с "перестраховкой": любой ввод посылаю на сервер азинхронным запросом, там делаю все проверки и либо возвращаю ошибку, либо перевожу пользователя на следующую страницу.
Все равно тебе без сервера не обойтись, иначе вся эта регистрация "до фени".

Автор: jenek56 26.4.2008, 01:58
В том то и проблема, что мне надо это реализовать именно на JavaScript, еслибы через сервер, то не каких проблем бы небыло.

Автор: ksnk 26.4.2008, 09:22
jenek56, регулярку для проверки e-mail брать http://forum.vingrad.ru/articles/topic-207727/kw-email-valid-preg-match.html. Проверка будет - правильный или неправильный e-mail. Проверять стоит ли точка с собакой и в каком месте - гнилое занятие...

А зачем функция disp_alert, если ей не пользоваться?

Автор: jenek56 26.4.2008, 09:44
disp_alert пользуюсь, просто я же не весь файл вам перекопировал, а только то что надо

Добавлено через 55 секунд
+ скрипт то вы мне дали, на серверной части (еще и ПХП, а я АСП учу)

Автор: ksnk 26.4.2008, 10:10
Цитата(jenek56 @  26.4.2008,  09:44 Найти цитируемый пост)
на серверной части (еще и ПХП,

Ну и что? Ата регулярка почти универсальна...
Код

var email_reg=/^[0-9a-zA-Z]([0-9a-zA-Z\-\_]+\.)*[0-9a-zA-Z]*@[a-zA-Z0-9]*([0-9a-zA-Z\-\_]+\.)*[0-9a-zA-Z]+\.[a-zA-Z]{2,6}$/
...
   else
   if (!document.reg.email.value || !document.reg.email.value.match(email_reg)) {
      alert('некорректный e-mail');
   }




Автор: jenek56 1.5.2008, 21:03
А можеш плиз обьяснить как она работает, а то я чтото не понял.
Спасибо!

Автор: ksnk 1.5.2008, 23:21
Как работает регулярка? Она несложна, если знать основы, и необъяснима, если не знать  smile .
Синтаксис регулярок можно найти в гугле или в документации по JavaScript...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)