没有正则表达式2的字母数字验证javascript

时间:2015-12-07 13:24:45

标签: javascript html regex validation arraylist

如果我运行,验证只能在符号“/”上工作,如果我输入除/ 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;
        }
    }
}

1 个答案:

答案 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;
    }
}

这应该只在遇到无效字符时退出循环(和包含函数)。