如果我运行,验证只能在符号“/”上工作,如果我输入除/ didnt工作之外的其他符号。我不使用正则表达式。
if(nama!==""){
var i;
var list = new Array ("/","!", "@", "#","$","%","%","^","&","*",
"(",")","_","+","=","-","`","~",";","<",
">",".","?","[","]","{","}",",");
var llength = list.length;
for(i=0; i<llength; i++)
{
if(nama.match(list[i]))
{
alert("Full Name must not contain any number and symbol");
return false;
}
else
{
return true;
}
}
}
答案 0 :(得分:1)
这里似乎有几个问题。一个是你在达到有效字符时立即致电return true
。这意味着如果第一个字母有效,您将永远不会检查其他任何内容。
另一个问题是你试图检查无效字符,但是你怎么知道你已经检查过它们了?
解决整个问题的更好方法可能只是有效字母列表;您原来的更改可能类似于以下内容:
var list = new Array ("a", "A", "b", "B", ... [etc] );
for(i=0; i<llength; i++)
{
if(!nama.match(list[i]))
{
alert("Full Name can only contain letters a-z!");
return false;
}
}
这应该只在遇到无效字符时退出循环(和包含函数)。