js验证非法字符,只能包含a-z.0-9,和下划线

现有的代码:functioncheckUser(){varname=document.myform.txtUser;if(name.value==0){alert("请输... 现有的代码:
function checkUser(){
var name=document.myform.txtUser;

if(name.value==0){
alert("请输入用户名");
name.focus();//焦点
return false;
}else if(!(name.value.length>=4&& name.value.length<=14)){
alert("输入长度为4-14个字符");
name.focus();
return false;

}
以下是我自己写的, 但是显示是错的.:

for(i = 0;i < name.length;i++) {
n = name.charCodeAt(i); //把字符串中第i个字符的ASCALL值赋给变量n
if(!((n >= 0 && n <= 9) || (n >= a && n <= z) || (n >= A && n <= Z) || n == '_')) { //48=0,57=9,65=A,90=Z,97=a,122=z,95=_,.=46,@=64
alert("用户名只能由数字、英文字母和下划线组成");
return false;
}
展开
 我来答
nnigou
2011-06-20 · TA获得超过983个赞
知道小有建树答主
回答量:1580
采纳率:0%
帮助的人:1540万
展开全部
用正则啊
var re=/^[a-z0-9_]{4,14}$/
if(!re.test(name.value)){
alert("输入长度为4-14个字符");
name.focus();
return false;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chunweiai
2011-06-20 · TA获得超过107个赞
知道答主
回答量:112
采纳率:0%
帮助的人:48.3万
展开全部
在上面声明re=^[A-Za-z0-9]+$;
在你的else if后面加上:
else if(!re.test(name.value))
{
alert("用户名只能由数字、英文字母和下划线组成");
return false;
}
else
return true;
如果字母不能是大写的去掉A-Z
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chinaren_1123
2012-03-31
知道答主
回答量:54
采纳率:0%
帮助的人:10.5万
展开全部
改成如下:
if(!((n >= 0 && n <= 9) ||(n == '_') ||(n >= a && n <= z) &&(n >= A && n <= Z) ) )
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式