Программирование > JavaScript & JScript
Помогите пожалуйста (форма)
Blizzard:
Слухай, а как мне еще сделать проверочку на определение правильного ввода е-майла и ИНН (в ИНН должно быть 9-ть цыфр). ?
Макс:
Я e-mail так проверяю:
--- Код: ---
var email = /^[a-z0-9\\._-]+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$/;
var o = f.admin_email;
if (o.value.length == 0) {
alert("Вы не ввели E-Mail администратора");
o.focus();
return false;
} else if (!email.test(o.value)) {
alert("E-Mail администратора имеет неправильный формат");
o.select();
return false;
}
--- Конец кода ---
ИНН наверное также только регексп будет таким:
inn = /^[0-9]{9}$/
Nickii:
Blizzard
Макс уже нарисовал тебе серверную часть.
Вот тебе клиентская.
Решение:
Разобрать в цикле значение полученной строки по символу (при помощи функции charAt()), а дальше и так все ясно
Реализация:
В код написанный выше надо добавить две функции
// Проверка Инн
function checkInn(str)
{
var ch, i, j,
// массив разрешенных символов
digit = new Array("0","1","2","3","4","5","6","7","8","9");
/* Да будет тебе известно, что в ИНН организации 10 цифр, а в ИНН ЧП 12-цифр. Или ты не работаешь с ЧП?
И вообще для задания длинны вводимого текста тег имеет специальное свойство */
if(str.length != 10)
{
alert("В ИНН должно быть 10 цифр");
return false;
}
// проходим посимвольно по всей строке
for(i = 0; i < str.length; i ++)
{
// получаем из строки символ под номером i
ch = str.charAt(i);
var found = false;
// Проверяем полученный символ на соответствие с разрешеными
for(j = 0; j < digit.length; j ++)
if(ch == digit[j]) found = true;
// Если соответствия нет, значит человек ошибся
if(!found)
{
alert("В ИНН должны быть только цифры, а не символы типа \'"+ch+"\'");
return false;
}
}
return true;
}
// Проверка EMail\'a
function checkEMail(str)
{
/* Все аналогично предыдущей функции, за исключением того, что в EMail обязательно должен быть символ \'@\' и хотябы одна \'.\'*/
var ch, i, j,
// Флаг присутствия символа \'@\'
isDog = false,
// Флаг присутствия символа \'.\'
isDot = false,
// массив разрешенных символов
email = new Array("q","w","e","r","t","y","u","i","o","p",
"a","s","d","f","g","h","j","k","l","z",
"x","c","v","b","n","m","1","2","3","4",
"5","6","7","8","9","0","_","@",".");
for(i = 0; i < str.length; i ++)
{
ch = str.charAt(i);
var found = false;
for(j = 0; j < email.length; j ++)
if(ch == email[j])
{
// Проверка на собаку
if(ch == "@")
if(isDog)
{
// Если это вторая собака, значит это не mail
alert("EMail не верен.");
return false;
}
else
// Если это первая собака, установим соответствующий флаг
isDog = true;
// Если это точка, установим соответствующий флаг
if(ch == ".")
isDot = true;
found = true;
}
if(!found)
{
alert("В EMail не допустимы символы \'"+ch+"\'");
return false;
}
}
// Если не было хотя бы одного из обязательных символов значит это не mail
if(!isDog || !isDot)
{
alert("EMail не верен.");
return false;
}
return true;
}
// Далее в функцию function checkmail() надо добавить следующие строки
if (txt1 == "")
{
alert("Введите e-mail");
return false;
}
// Вот этот кусок добавлен
else
if(!checkEMail(txt1)) return false;
if (txt6 == "")
{
alert("Введите ИНН фирмы");
return false;
}
// Вот этот кусок добавлен
else
if(!checkInn(txt6)) return false;
/* Вот и все. Только не забудь сделать на сервере все соответствующие проверки, а мой mail можно увидеть посмотрев информацию о зарегестрированном пользователе Nickii*/
Макс:
Nickii
я привел клиентскую часть на javascript
Nickii:
Макс
Извини. Обознался. Торопился. Ну в общем лопухнулся... :)
Nickii
Навигация
Перейти к полной версии