嘿伙计们,我正在创建一个客户名称文本字段,并有这些要求。
获取名称中有多少个字符
检查名称是否大于6,如果是,则继续下一步检查
检查第一个字符是否为空格然后失败
如果最后一个字符是空格则失败
必须在名称
的某处有空格这是我到目前为止所做的,它不起作用所以我知道它的语法可以有人帮助我吗?我也不能做必须有一个空格部分,我假设Il必须循环遍历名称并检查当前char是否每次都是空格,如果是这样,添加到变量然后在结束时检查变量是否高于0?< / p>
<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>
答案 0 :(得分:1)
您似乎有一些语法错误,即:
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 here对你而言。
答案 1 :(得分:0)
你这样做的方式非常复杂,你应该使用正则表达式。
有关正则表达式如何工作的信息,请参阅http://www.w3schools.com/jsref/jsref_obj_regexp.asp
对于名称带有空格,名字和姓氏各自至少3个字符的名称,您的正则表达式将如下所示:[A-Za-z]{3,}\ [A-Za-z]{3,}