2011-10-27 3 views
3

사용자가 검색 할 도메인 이름을 쓸 수있는 입력 필드가 있습니다.Jquery 도메인 이름을 확인하는 방법

내 도메인 검색에만 검색 지원 : "something.com"또는 "뭔가"

을 그리고 그것은 단지 아약스 호출이되기 전에 내가하고 싶은

.com, .net, .org은 사용자 입력의 유효성을 검사입니다 지원 잘못된 것이 있으면 오류 메시지를 표시하십시오. 예 경우 사용자 유형 : "asdasdasd.asdasd"또는 "wwwasd.asdasd"또는 "www.asdasd.dk"여기

#domainsearch is the input field 

#domanerknap is the search button 

내 JQuery와 있습니다 : 아래 그림과 같이

$(document).ready(function() { 
    $('#domanerknap').click(function(e) { 
     var doma = $('#domainsearch').val(); 
     $('#contentajax').empty() 
         .css("border", "1px solid #CCCCCC") 
         .html('<p class="vent">Please wait...</p><p class="venter"><img src="../images/ajax.gif" /></p>'); 
     $.ajax({ 
      type: 'POST', 
      url: 'http://localhost:3000/domain', 
      data: { 
       domain: doma 
      }, 
      success: function(msg){ 
       $('#contentajax').html(msg); 
       $('#contentajax').css("border", "none"); 
      } 
     });   
    }); 
}); 

답변

1

정규식을 사용하여 도메인이 유효한지 확인하십시오. 이러한 정규식 수 있습니다 :

$(document).ready(function() { 
    $('#domanerknap').click(function(e) { 
     var doma = $('#domainsearch').val(); 
     if(!/^(http(s)?\/\/:)?(www\.)?[a-zA-Z\-]{3,}(\.(com|net|org))?$/.test(doma)) 
      { 
       alert('invalid domain name'); 
       return false; 
      } 
     $('#contentajax').empty() 
         .css("border", "1px solid #CCCCCC") 
         .html('<p class="vent">Please wait...</p><p class="venter"><img src="../images/ajax.gif" /></p>'); 
     $.ajax({ 
      type: 'POST', 
      url: 'http://localhost:3000/domain', 
      data: { 
       domain: doma 
      }, 
      success: function(msg){ 
       $('#contentajax').html(msg); 
       $('#contentajax').css("border", "none"); 
      } 
     });   
    }); 
}); 
+0

"asdasdasd"를 제출할 때 "도메인 이름이 유효하지 않습니다"라는 메시지가 표시되면이를 변경하는 방법을 허용해야합니까? –

+0

업데이트를 참조하십시오. sry, 도메인 확장자를 제외시킬 수 있기를 원했음을 놓쳤다 –

+0

var doma가 "testsome.oaa"이고 오류가 ".ooa가 지원되지 않거나 유효하지 않음"이고 if var doma는 "www.adsasd"로 잘못된 도메인 이름 "http : //www.www.adsasd"를 발생시킵니다. –

3

사용 패턴 .

  • 도메인은
  • 만 영숫자와 hypens는
  • 하위 도메인이
  • 최상위 도메인을 사용할 수 있습니다 유효한 도메인 이름을있는 프로토콜을 포함 할 수 없습니다 :이 패턴을 구성하기 위해, 나는 다음과 같은 규칙을 사용 다음 중 하나 여야합니다. com net org

동적 일치가 포함되어 있으므로 입력시 프로토콜과 경로가 자동으로 생략됩니다.

var domainPattern = /^(https?:\/\/)?((?:[a-z0-9-]+\.)+(?:com|net|org))(?:\/|$)/i 
if(doma.match(domainPattern)){ 
    doma = doma[1]; //Get the domain parth 
    $.ajax(...); //Valid 
} 
+0

방법 하위 도메인을 비활성화 : 당신이 AJAX 호출을 보내기 전에

/^(http(s)?\/\/:)?(www\.)?[a-zA-Z\-]{3,}(\.(com|net|org))?$/ 

그런 다음, 입력이 정규식과 일치하는지 확인? 또는 허용하지 않음 _ –

+0

@Railsbeginner 루트 도메인을 선택하려면'/([a-z0-9-]+\.(?com|net|org))(?:\/|$)를 사용하십시오.)/i'. 이 패턴은 지정된 문자열 (예 : "my site is example.com/mysite"'->'example.com')에서 일치하는 URL을 선택하려고 시도합니다. –

+0

대괄호 사이에'-' 기호를 사용하지 마십시오. –

0
if(!doma.match(/^[a-z0-9_-]+(\.(com|net|org))?$/i)) { /* error stuff here */ 
else $.ajax(...); 

그런 뭔가, 나는 당신이 준 유효한 입력의 예에 의해가는 상상 것이다.

input 요소의 pattern 속성에 /.../ 사이의 부분을 넣을 수도 있습니다. 지원 브라우저는 제출을 허용하기 전에 일치하는 브라우저를 사용합니다.

+0

도메인 이름의 시작 부분에 'dash'를 사용합니다. 예 :'-new.com'은 분명히 잘못되었습니다 ... – behz4d

관련 문제