【问题标题】:alphanumeric validation javascript without regex 2没有正则表达式的字母数字验证javascript 2
【发布时间】:2016-03-12 02:53:14
【问题描述】:

如果我运行,验证只能在符号“/”上工作,如果我输入除 / 之外的其他符号不起作用。我没有使用正则表达式。

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

【问题讨论】:

  • 您正在通过在 else 块中使用 return 关键字来终止循环,即你的循环只迭代一次。你不需要else 块。您应该在循环之后使用return true 语句

标签: javascript html regex validation arraylist


【解决方案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;
    }
}

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 2020-11-18
    • 1970-01-01
    相关资源
    最近更新 更多