怎么设置用户注册时禁止纯数字注册呢? New
我知道答案 回答被采纳将会获得1 贡献 已有1人回答 修改文件:\static\js\register.js
在 checkusername 函数中,可以通过添加正则表达式判断来排斥纯数字用户名。以下是修改建议:
修改方法
在 checkusername 函数中,在现有的 username.match(/<|>|"|\(|\)|'/ig) 判断之后,添加对纯数字的检查:
function checkusername(id) { errormessage(id); var username = trim($(id).value); if($('tip_' + id).parentNode.className.match(/ p_right/) && (username == '' || username == lastusername)) { return; } else { lastusername = username; } if(username.match(/<|>|"|\(|\)|'/ig)) { errormessage(id, $L('username_illegal')); return; } // 添加:检查是否为纯数字用户名 if(/^\d+$/.test(username)) { errormessage(id, $L('username_numeric_not_allowed') || '用户名不能为纯数字'); return; } var unlen = username.replace(/[^\x00-\xff]/g, "**").length; if(unlen < 3 || unlen > 15) { errormessage(id, unlen < 3 ? $L('username_min_length', ) : $L('username_max_length', )); return; } var x = new Ajax(); $('tip_' + id).parentNode.className = $('tip_' + id).parentNode.className.replace(/ p_right/, ''); x.get('forum.php?mod=ajax&inajax=yes&infloat=register&handlekey=register&ajaxmenu=1&action=checkusername&username=' + (username.replace(/%/g, '%25').replace(/#/g, '%23')), function(s) { errormessage(id, s); });}
关键点说明
修改内容说明/^\d+$/.test(username)正则表达式检查字符串是否全部由数字组成(^ 开头,\d+ 一个或多个数字,$ 结尾)$L('username_numeric_not_allowed')建议在语言包中添加对应的提示文本,或直接使用硬编码的提示信息
可选:更严格的限制(如果只允许字母开头)
如果希望用户名必须以字母开头,且不能为纯数字,可以使用:
// 必须以字母开头,且不能为纯数字if(/^\d+$/.test(username) || !/^/.test(username)) { errormessage(id, $L('username_invalid') || '用户名必须以字母开头且不能为纯数字'); return;}
语言包配置(可选)
在语言包中添加对应的提示信息:
// 在语言包中添加$L('username_numeric_not_allowed', '用户名不能为纯数字');
页:
[1]