2011-12-20 5 views
1

안녕하세요 제가 도메인을 입력 한 후 아무것도 입력 방지 할 수있는 방법을 찾을 수 없습니다정규 표현식은

jQuery.validator.addMethod("url_validation", function (value, element) { 
    return this.optional(element) || /^([ \t+])?(([http|https|HTTPS|HTTP]+:\/\/))?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)[email protected])?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/i.test(value); 
}, "error") 

URL을 검증하는 정규 표현식을 썼다 - " http://www.mydomain.uk/whateverthing.ext "도메인에 들어간 후 무엇이든 입력하는 것을 멈추고 싶습니다.이 문제를 해결할 방법을 찾을 수 없었습니다. 누구든지 내게 도움을 줄 수 있습니까?"

답변

6

) OK, 두 가지를 원합니다.

  • 호스트 이름의 유효성을 검사합니다.
  • 은 /, if/there 뒤에있는 부분이 비어 있는지 확인합니다.

당신은 같은 진행할 수 :

  • ^https?://([a-z0-9-]+(?:\.[a-z0-9-]+)*)/?(.*)에 대한 귀하의 의견을 확인;
  • 위와 일치하지 않는 경우 잘못된 URL이 있습니다.
  • 그랩 그룹 2 : 비어 있지 않은 경우 비어 있지 않은 경로, 잘못된 URL을 의미합니다.
  • 그래 브 그룹 1을 \.과 분리합니다. 하나는 잘못된 URL을하지 않는 경우 :
  • 는 모든 그룹의 길이가 < = 255 경기 ^[a-z0-9]+(-[a-z0-9]+)*$의 여부를 확인합니다.

그리고 그 호스트 이름 부분에 IP 주소를 고려하지 않습니다는 ...

나는 jQuery를 그 검사 할 방법이 없다는 어쨌든 놀란다. 봤어?

편집 : 그것은이 있습니다

+0

http://docs.jquery.com/Plugins/Validation/Methods/url가 아니라 우리가 HTTPS 것들에 대한 example.com, www.example.com, http://www.example.com, http://example.com도를 입력 할 수 . .com/ –

+0

예, 이것은 정확하게 나의 정규식이하는 것입니다! – fge

+0

알았어. 대단히 감사합니다. –