美文网首页前端学习Web前端之路程序员
你碰到过的最难调试的 Bug 是什么样的?

你碰到过的最难调试的 Bug 是什么样的?

作者: webCoder | 来源:发表于2016-04-22 11:34 被阅读1133次

    网上浏览帖子,看到这个标题,就很好奇的点了进去。看到内容,我内心是崩溃的,深表同情。

    • 看图
    pic1.jpg pic2.png
    • 看到上面的,相信改完bug的程序猿会变成下面这样:
    pic3.png
    • null的问题,让我想到下面的问题
    不管前端还是后端检测用户名,通常只检测下面几点:
      - 用户名非空
      - 用户名长度不超过限制
      - 用户名中不包含非法字符串
    看到图1,我们应该还要限制用户名不能为下面几个类型(站在前端的角度):
      - undefined
      - nan
      - null
    

    下面就以策略者模式写一个检测用户名的方法:

    <!DOCTYPE html>
    <html lang="en">
    <head>
       <meta charset="UTF-8">
       <title>策略者模式</title>
    </head>
    <body>
       <script>
           var validate = (function(){
               var message = {
                   'isNotAllow':'用户名格式不正确'
               };
    
               var validateFunction = {
                   isNotAllow: function(value){
                       //判断传来的是否是字符串
                       if(Object.prototype.toString.call(value).slice(8,-1)!='String'){
                           return true;
                       }
                       //3-10位的字母下划线和数字组成。不能以数字或下划线开头
                       var reg = new RegExp("^[a-zA-z][a-zA-Z0-9_]{2,9}$");
                       var errorArr = ['undefined','nan','null']
                       if( !reg.test(value) || errorArr.indexOf(value.trim().toLowerCase())!==-1 ){
                           return true;
                       }
                       return false;
                   }
               };
    
               return function(value,type){
                   if(validateFunction[type](value)){
                       return message[type];
                   }
                   return '用户名格式正确';
               }
           })();
    
           console.log(validate("Null","isNotAllow"));  
           console.log(validate("","isNotAllow"));
           console.log(validate("*&%w","isNotAllow"));
           console.log(validate("yinxiaofei","isNotAllow"));
       </script>
    </body>
    </html>
    
    • 执行结果:
    pic4.png

    关于策略者模式,可以看我写的这篇文章~ 狠戳这里

    相关文章

      网友评论

      本文标题:你碰到过的最难调试的 Bug 是什么样的?

      本文链接:https://www.haomeiwen.com/subject/vscxrttx.html