0

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

获取名称中有多少个字符

检查名称是否大于 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>
4

2 回答 2

1

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留给您。

于 2013-05-01T18:37:54.973 回答
0

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

有关正则表达式的工作原理,请参见http://www.w3schools.com/jsref/jsref_obj_regexp.asp

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

于 2013-05-01T18:43:24.190 回答