Javascript问题问题

Javascript Questions issues

本文关键字:问题 Javascript      更新时间:2023-09-26

嘿,伙计们,所以我做了一个客户姓名文本字段,并有这些要求。

获取name

中有多少字符

检查name是否大于6,如果大于6则继续下一个检查

检查第一个字符是否为空格,则失败

如果最后一个字符是空格,则失败

名称

中必须有空格

这就是我到目前为止所做的,它不工作,所以我知道它的语法可以有人帮助我吗?我也不能做必须有一个空格部分,我假设我必须循环通过名称和检查当前字符是否是一个空格,如果是,添加到一个变量,然后在结束检查变量是否大于0?

<script type="text/javascript" language="javascript">
    var NamePass = true;
    function ValidateName()
    {
        var BlankPass = true;
        var GreaterThan6Pass = true;
        var FirstBlankPass = true;
        if (document.getElementById('Name').value=="")
        {
            document.getElementById('Name').style.background="red";
            BlankPass = false;
        }
        var Size = document.getElementById('Name').value.lastIndexOf();
        if (Size>7)
        {
            document.getElementById('Name').style.background="red";
            GreaterThan6Pass = false;
        }
        if (document.getElementById('Name').value.(str.substring(0,1)==" ")
        {
            document.getElementById('Name').style.background="red";
            FirstBlankPass = false;
        }
        var LastIndex = document.getElementById('Name').value.lastIndexOf();
        if (document.getElementById('Name').value.(str.substring((LastIndex-1),1)==" ")
        {
            document.getElementById('Name').style.background="red";
            FirstBlankPass = false;
        }   
        if (BlankPass == false || GreaterThan6Pass == false || FirstBlankPass == false )
        {
            NamePass = false;
        }
    }
</script>
<body>
<b>Customer Information</b><br>
<dd>Your name: 
<input type=text name="Name" size=40 maxlength=40 id="Name"     onblur="ValidateName()">
<img id="NameTick" style="width: 15; height: 15;     visibility:hidden;" src="Tick.png" />
<br>

jsFiddle。


你似乎有一些语法错误,即:

if (document.getElementById('Name').value.(str.substring(0,1)==" ")

应为:

if (document.getElementById('Name').value.substring(0,1) == " ")

if (document.getElementById('Name').value.(str.substring((LastIndex-1),1)==" ")
应:

if (document.getElementById('Name').value.substring((LastIndex-1),1) == " ")

编辑:

关于你的评论,我已经检查了你的代码,并改变了你所有的逻辑,使它像你希望的那样工作,这是一个有点太多的代码放在这里,所以我只留下jsFiddle在这里为你代替。

你这样做的方式真的很复杂,你应该使用正则表达式来代替。

请参阅http://www.w3schools.com/jsref/jsref_obj_regexp.asp了解正则表达式的工作原理

您的正则表达式看起来像这样的名字与一个空格和名字和姓氏各至少3个字符:[A-Za-z]{3,}' [A-Za-z]{3,}