怎么限制过滤非法字符注册?

来源:百度知道 编辑:UC知道 时间:2024/07/01 07:50:14
我这样写,怎么限制不了,要怎么修改?
//检查用户名
if (document.registerUser.user.value == "")
{
alert("用户名不能为空!");
document.registerUser.user.focus();
return (false);
}
else
{
//检查id值里是否有特殊字符
var checkOKpass = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-";
var checkStrpass = document.registerUser.user.value;
var allValidpass = true;
for (i = 0; i < checkStrpass.length; i++)
{
ch = checkStrpass.charAt(i);
for (j = 0; j < checkOKpass.length; j++)
if (ch == checkOKpass.charAt(j))
break;

if (j == checkOKpass.length)
{
allValidpass = false;
break;
}
}

if (!allValidpass)
{
alert("您输入的用户名包含无效字符!");
document.registerUser.user.focus();
return (false);
}

咋不用正则?
var checkStrpass = document.registerUser.user.value;
re=/[^\w\-]/g;
if (re.test(checkStrpass))
{
alert("您输入的用户名包含无效字符!");
document.registerUser.user.focus();
return (false);
}

得到表单传过来的字符串长度,然后一个循环,一个字符一个字符查,如果该字符不在你指定的字符集里面,提示非法.全部在,执行你的操作.

if(strLen(document.registerUser.user.value)>20 || strLen(document.registerUser.user.value)<4 )
这行改一下:
if(document.registerUser.user.value.length>20 || document.registerUser.user.value.length<4 )