2011-03-17 5 views
2
var tomatch= /http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{3}/ 
    if (tomatch.test(theurl)) 
    { 
     window.alert("URL OK."); 
     return true; 
    } 

URL을 검증하기 위해이 정규 표현식 코드를 사용해 보았습니다..me 도메인을 받아 들여야 할 URL의 유효성을 확인하는 데 도움이됩니다.

내가 \.[A-Za-z]{2,}\.[A-Za-z]{3}은 그래서 적어도 2 개 TLD 문자를 필요로 교체 http://about.me가 보여주는 오류

+3

어떤 오류가 있습니까? – Gumbo

답변

1

과 유효성을 검사 할뿐만 아니라, 더 많은 수 (등, .museum, 예를 들어 .info있다!)

또한 단일 문자 도메인 이름을 허용해야합니다. 일부 레지스트리 (DENIC/.de)가 허용됩니다. ,

http://test.meandmoretext 
*************** 

정규식이 일치 한 *의 표시 :

1

는 그냥 {3} TP

var tomatch= /http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{2,3}/ 

{2,3}

을 변경하지만 정규식은 이런 식으로 작동하는지 깨닫는다 따라서 일치 후 더 많은 텍스트가 있더라도 "URL OK"를 반환합니다. 전체 문자열 일치를 원한다면

var tomatch= /^http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{2,3}$/ 

TLDs can go up to 6 characters도 알 수 있습니다.

0

정규식 [A-Za-z]{3}의 마지막 부분은 3 개의 문자가 있어야한다는 의미의 모든 영문자 {3}과 일치한다는 것을 의미합니다.

는 말에 처음에 ^$를 추가 그것은 당신의 문자열의 일부만 일치하는 경우 그렇지 않은 경우에도 성공 : {2,}

1

변화는 그냥 다른 사람이 이미 말한에 추가 - 입력의 일부분 만 테스트하는 경우 적절한 유효성 검사를 수행하지 않습니다.

또 다른 것은 HTTPS URL을 허용하는 것입니다.

옵션 포트도 잊지 마세요.

경로!

그리고 쿼리 문자열.

해시 파트.

어쩌면 기본 인증 사용자와 비밀번호없이 도망 갈 수는 있지만 기술적으로 가능할 수 있습니다.

URL 유효성 검사는 것 같습니다. 심지어 정규 표현식을 직접 작성하려고하지도 않습니다. try the Regex Library이거나 older questions here 또는 Google : url validation javascript 일 수 있습니다.

관련 문제