насколько я не помню это уже обсуждалось...
и про корявые регулярные варажения писалось, и про то что на сервере оно стройнее будет ...
но все равно, вот тебе фрагмент моего мега кода проверяющего всякую неправльную фигню (надеюсь понятно что check должен быть к чему-то привязан, типа кнопки)
<script>
function check(){
var prname = /[\\d]/; //----хочу тока цифры
var df = /[\\D]/g; //--- помоему, хочу только нецифры
var fils = /\\htm$/; //-- хочу только хтмл документы
var filp = /\\jpg$/; //--- хочу только файлы на жпг оканчивающиеся
var errs = new Array(); //массив для сбора ошибок
if (teach.name.value=="" || prname.test(teach.name.value))
{
errs[0]="ФИО";
// проверил имя, если в нем цифры и пусто ето ошибка
}
if (teach.grade.value=="")
{
errs[1]="СТЕПЕНЬ";
//если пусто ето ошибка
}
if (teach.zvan.value=="")
{
errs[2]="ЗВАНИЕ";
//тоже самое
}
if (teach.spec.value=="")
{
errs[3]="СПЕЦИАЛЬНОСТЬ";
//тоже самое
}
if (teach.inst.value=="")
{
errs[4]="ЧТО ЗАКОНЧИЛ";
//alert(errs[4]);
}
if (df.test(teach.d1.value) || teach.d1.value >1974 || teach.d1.value<1930)
{
errs[5]="ГОД";
//проверил на цифренность и на значение
}
if (teach.legend.value!=""){
if (!fils.test(teach.legend.value))
{
errs[6]="Неправильтый тип файла в резюме, нужно htm";
//
}
}
if (teach.pic.value!="")
{
if(!filp.test(teach.pic.value))
{
errs[7]="Неправильтый тип файла в резюме, нужно jpg";
}
//alert(errs[7]);
}
if (errs.length!=0){
// если массив не пустой форма не отправится и скрипт покажет где вилы, если все "чисто" отправляем
errs=errs.join("\\n");
alert(errs);
}
else {
teach.submit();
}
}
</script>но это не 100% защита от фигни. А от злого умысла вообще не защита.