2013-05-01 5 views
0

안녕 얘들 아, 그래서 고객 이름 텍스트 필드를 만들고 이러한 요구 사항이 있습니다.자바 스크립트 질문 문제

는 첫번째 문자가 마지막 문자 인 경우 공백이 다음

를 실패 할 경우 그럼 다음 검사에

검사를 계속하면 이름보다 더 큰 6 경우 이름

체크 얼마나 많은 문자 수 공간은 내가 알고 그렇게 작동하지 않습니다, 이것은 내가 지금까지 한 일이다

이름으로 어딘가에 공간이 있어야합니다

실패의 누군가가 구문을 사용할 수 있습니까? 나는 또한 공간 부분을 가져야 만 할 수 없다. 나는 Il이 이름을 통해 반복하여 매번 char이 매번 공백인지 검사해야하고, 그렇다면 변수를 추가 한 다음 변수가 0보다 큰지 확인한다. jsFiddle here.


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

답변

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

덕분에 또한 것을 발견 크기 <7, 지금부터 그것을 사용하는 훌륭한 도구 메신저되었습니다! – Steven

+0

@Steven 걱정하지 마십시오! 내가 도와 주면 내 대답을 받아들이/고려해보십시오 :) 감사합니다! – lifetimes

+0

http://jsfiddle.net/UTtxA/1/ 답을 도울 수 있습니까? 답변 : – Steven

0

당신이하는 방식은 정말로 복잡합니다. 대신 정규식을 사용해야합니다.

참조 http://www.w3schools.com/jsref/jsref_obj_regexp.asp 정규 표현식에 작동 방법에 대한

귀하의 정규식은 최소 3 캐릭터의 공간과 이름과 성 각각의 이름이 같을 것이다

: [A-Za-z]{3,}\ [A-Za-z]{3,}

+3

W3schools는 끔찍한 자료입니다. 나는 이것을 제안한다. https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions –

+0

우리 교수는 우리가 어떤 이유로 든 기금을 사용하지 않기를 바란다 :/ – Steven

+0

그건 좋은 링크 야. 나는 그것을 미래에 사용할 것이다. –