一开始遇到了一些小问题
!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这段代码写在失去焦点事件的函数内部