Discuz 2.0 英文版 源码分析 一
这两天在折腾discuz 的英文版,发现2.0版本有不错的英文版,但是我们要求注册的时候密码长度有限制,搜索了很多,但是都没有找到合适,最后决定自己分析源码来操作,主要是两个文件。
1,$Id: static/js/lang_js.js 红色部分为新添加。
//-------------------------------- //static/js/register.js 'username_invalid' : 'User name contains invalid characters',//'用户名包含敏感字符', 'username_short' : 'User name is shorter than 3 characters',//'用户名小于 3 个字符', 'username_long' : 'User name is longer than 15 characters',//'用户名超过 15 个字符', 'password_short' : 'Password is shorter than 6 characters',//'用户名小于 6 个字符', 'password_long' : 'Password is longer than 16 characters',//'用户名超过 15 个字符', 'password_error' : 'Password length must be in range of 6-16 characters',//'用户名超过 15 个字符', 'passwords_not_equal' : 'Two passwords does not match',//'两次输入的密码不一致', 'email_invalid' : 'Email contains invalid characters',//'Email 包含敏感字符', 'invite_code_invalid' : 'Invitation code contains invalid characters',//'邀请码包含敏感字符', 'password_fill' : 'Please fill the password',//'请填写密码', 'password_again' : 'Please enter the password again',//'请再次输入密码', 'email_fill' : 'Please enter email address',//'请输入邮箱地址',
2,static/js/register.js 使用jquery的正则表达式来做判断。
function checkpassword(id1, id2) { var patten = new RegExp(/^[a-zA-Z\d_]{6,16}$/); if(!$(id1).value && !$(id2).value) { return; } if(!patten.test($(id1).value)){ errormessage(id1, lng['password_error']); return; } errormessage(id2); if($(id1).value != $(id2).value) { errormessage(id2, lng['passwords_not_equal']); } else { errormessage(id2, 'succeed'); } }
这样就完成了密码的验证,没有bug出现,大家有用的可以试试。