2012-02-09 4 views
0

yes.com을 제외한 코드는 으로 표시되지만 네임 서버의 앞이나 끝에는 숫자 , , 숫자를 허용하고 점을 사용하지 않아야합니다. 도와주세요, 제발.네임 서버 유효성 확인

<html> 
<head> 
<title>Validate name server</title> 
<script type="text/javascript"> 

    function validSubdomain() { 
     var re = /^[a-zA-Z0-9][a-zA-Z0-9.-]+[a-zA-Z0-9]$/; 
     var val = document.getElementById("nameserver").value; 

    if(val == ''){ 
     alert("Please enter the name server"); 
     return false; 
    } 
     if(re.test(val)) { 
      alert("valid format"); 
     } 

     if(!re.test(val)) { 
      alert("invalid format"); 
     } 

    } 
    </script>   
    </head> 

    <body> 
    Insert nameserver : <input name="txt_domain" id="nameserver" type="text" size="30" /> <input name="btn_validate" type="button" value="Validate" onclick="validSubdomain()" /> 
    </body> 
    </html> 

데모 페이지 : http://khamis.cheapantivirus.me/

답변

1

분할 점에 의해 얻어진 값과 부품 개수.

var parts = val.split('.'); 
if (parts.length < 3) { alert('invalid') } 
+0

호스트의 부분에 대해 유효성 검사를 수행하고 있지 않습니다. 예를 들어, "@. @. @"와 일치합니다. 3이 넘으면 일치합니다. – Asmor

+0

그는 이미 유효성 검사를 수행하고 있습니다. 그가 정확하게 3 또는 적어도 3을 원하면 확실하지 않았습니다. –

+0

네, 정말 고마워요. 너는 나를 정확하게 이해한다. 그것은 작동합니다. 다시 한번 감사드립니다. – sg552

0

일치해야하는 패턴에 대해 좀 더 명시해야합니다. 나는 당신이 3 개의 영숫자 "단어"를 2 개의 점으로 구분하고 싶다고 가정하고 있습니다.

이 정규식은 당신이 원하는 것을 일치 :

var re = /[a-zA-Z0-9]+(\.[a-zA-Z0-9]+){2}/ 

호스트, 예를 들어, 3 개 부분 적어도 일치하고 싶었다면 "foo.bar.example.com"또는 "www.example.co.uk"그냥 마지막에 정량을 수정은 오픈 엔드 수 : 귀하의 질문에서

var re = /[a-zA-Z0-9]+(\.[a-zA-Z0-9]+){2,}/ 
+0

제 질문을 분명히하지 않는 것에 대해 사과드립니다. 시간을 낭비해서 죄송합니다. 도와 주셔서 감사합니다. – sg552

0

당신이 가능성에 대해 잊지 보인다 두 배 이상의 대시가 필요합니다. 이제는 ccTLD가 연속적으로 여러 개의 대시를 허용한다는 것을 알고 있지만 대개는 금지되어 있습니다.