函数执行顺序

一开始遇到了一些小问题

!function(){
    var reguser = /^[a-zA-Z][a-zA-Z0-9_]{4,15}$/;//字母开头,允许5-16字节,允许字母数字下划线
    var regpwd = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,12}$/; //必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-12之间
    var user_name = user_name_z.value;
    $('#user_name_z').blur(function(){
        debugger;
        if(reguser.test(user_name)){
            console.log(user_name)
        }
    })
}();

这段代码的正则一直是false

经过测试发现其实是因为验证正则的时候user_name其实是空值,因为匿名函数的自调在页面加载的时候执行,所以当执行到input失去焦点时,正则验证了一个空值导致判断为false

正确的写法应该是把获得value这段代码写在失去焦点事件的函数内部

posted @ 2016-07-13 01:06  陈小银  阅读(490)  评论(0编辑  收藏  举报