1. JavaScript / Говнокод #10537

    +155

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    ISQ.Data.checkString=function(e,f){
        var d=true;
        switch(f){
        case"email":
    	var a=/^[\w-_\&.]+\@([\w-_]+\.[\w-_]+){1,3}$/;
    	var g=new RegExp("[~!#$%^&*()=''\"\\/><?[]{}|]","g");
    	return(e.search(g)===-1)&&(e.match(a))&&(e!=="");
    	break;
        case"number":
    	var b=/^[-]?[0-9]+\.?[0-9]?$/;
    	return b.test(e);
    	break;
        case"username":
    	var c=new RegExp(".+@.+");
    	return(c.test(e));
    	break;
        case"url":
    	var c=new RegExp("^https?://([a-zA-Z0-9]+.){1,}[a-zA-Z0-9]+");
    	return(c.test(e));
    	break
        }
        return d
    }
    
    // Функция универсальной валидации.
    // (Но незадолго до того было еще и)
    
    ISQ.Data.getEmailAddress=function(e){
        var a=/[\w-_\&.]+\@[\w-_]+\.+[\w-_.]+/g;
        var d=e.match(a);
        if(d===null||d.length===0){
    	return null
        }
        var f=new RegExp();
        f.compile("[~!#$%^&*()=`'\"\\/><?[]{}|]","g");
        var b=new Array();
        for(var c=0;c<d.length;++c){
    	if(d[c].search(f)===-1){
    	    b.push(d[c])
    	}
        }
        return b
    }

    Еще одна творческая работа.

    Запостил: wvxvw, 03 Июня 2012

    Комментарии (5) RSS

    • Кстати, обратите внимание на отсутствие обратной кавычки в одном из вариантов. Т.е. автор не копировал, все честно набирал. Или, даже не так, скорее всего скопировал один раз, потом что-то не срослось, и решил поправить, в двух местах, но в одном получилась лажа...
      Ответить
    • ЗЫ. Интересно вообще в каком браузере это выражение работало. По-идее оно вообще не должно компилироваться, но в Хроме совпадает, например, закрывающая квадратная скобка.
      Ответить
    • ISQ.Widget.Survey.validateSurvey=function(){
          var o=ISQ.Widget.Survey.questions;
          var b=false;
          var q=false;
          var m=false;
          var g;
          for(var d=0;d<o.length;d++){
      	if(!o[d].visible){
      	    continue
      	}
      	var n=o[d].question;
      	var e=o[d].input;
      	var f=o[d].inputs;
      	var p=o[d].row;
      	var k=o[d].labelHasName;
      	var r=n.type;
      	var s=n.validationType;
      	var l=n.mandatory;
      	var a=false;
      	if(e){
      	    g=e.value.Trim()
      	}
      	else
      	{
      	    g=null
      	}
      	if(l){
      	    if(g===""){
      		a=true
      	    }
      	    else
      	    {
      		if(f){
      		    var c=false;
      		    for(var h=0;h<f.length;h++){
      			if(f[h].checked){
      			    c=true;
      			    break
      			}
      		    }
      		    a=!c
      		}
      	    }
      	}
      	if((r==="Text Field"||r==="Text Area")&&g){
      	    switch(s){
      	    case"alpha_numeric":
      		if(k&&!m){
      		    a|=g.indexOf('"')>-1|
      			g.indexOf("'")>-1|
      			g.indexOf("<")>-1|
      			g.indexOf(">")>-1|
      			g.indexOf(";")>-1;
      		    m=true
      		}
      		break;
      	    case"numeric":
      		a|=!ISQ.Data.checkString(g,"number");
      		break;
      	    case"email":
      		a|=!ISQ.Data.checkString(g,"email");
      		break
      	    }
      	}
      	if(a){
      	    p.className="validationError";
      	    b=true;
      	    if(!q){
      		q=true;
      		ISQ.Widget.HTML.contentWrapper.scrollTop=
      		    p.offsetTop-ISQ.Widget.HTML.contentWrapper.offsetTop
      	    }
      	}
      	else
      	{
      	    p.className=""
      	}
          }
          return !b
      };

      Славное продолжение валидации. Особое внимание стоит обратить на case"alpha_numeric":
      Ответить
    • показать все, что скрытоВсем минусы! Всем добра!
      Ответить
    • - Ты шутишь? - парень взял меня за руки и начал прыгать, как заведённый, вызвав у меня смех. - Не может этого быть! Грудастая Мэри? Ты серьёзно?
      Ответить

    Добавить комментарий