2012-01-31 4 views
0

이 가능한 중복 :자바 스크립트와 PHP 정규 표현식은


Regular expression for URL validation (in JavaScript) 그래서 나는 많은 유사한 질문과 답변을 본 적이 있지만, 내 특정에 맞는 솔루션을 찾을 수 없습니다 필요합니다.

나는 Regex 's에서 끔찍하며 다음 URL 유효성 검사를 위해 간단한 Regex를 얻으려고 애 쓰고 있습니다.

domain.com 
domain.com/folder 
subdomain.domain.com 
subdomain.domain.com/folder 

또한 옵션 HTTP에 대한 유효성을 검사 : //와 http://www. 슈퍼 도움이 될 것입니다. 감사! 가깝게 나는 것 얻을 수

+1

'somedomain.sometld'은 유효한 URL입니까? 이것에 조심하십시오. 당신이 많이 찾지 못하는 이유는 링크가 너무 많거나 적거나 너무 적게 연결되는 까다로운 균형 때문에 어려운 문제이기 때문입니다. 그것이 나라면 넓은 네트워크를 캐스팅하고 유효한 URL을 구성하고 자동 연결하기 전에 해당 URL이 서버 측에 있는지 확인하십시오. – Brad

+0

* "내 특정 요구에 맞는 솔루션을 찾을 수 없습니다"* ... URL의 유효성을 검증하는 방법을 보여주는 웹 사이트상의 수백만 가지 예제 (스택 오버플로 포함)와 정확히 다른 점은 무엇입니까? – rdlowrey

+0

이 솔루션을 더 쉽게 만들 수 있다고 생각합니다. 어휘를 허용하지 않는 정규식은 "둘 이상의. 또는 영숫자 사이"라고 말하면 어떻습니까? 예. domain..com은 실패해야합니다. 또한 URL에 매우 광범위한 규칙이 있으므로 결정적인 해결책이 없다는 Brad의 의견에 동의합니다. 나는 URL을 입력하기위한 기본 유효성 검사를 찾으려고합니다. – mike

답변

0

: 귀하의 질문에 프로토콜, TLD를하거나 문자 세트의 세트에 URL을 제한하지 않은

/[a-z]+:\/\/(([a-z0-9][a-z0-9-]+\.)*[a-z][a-z]+|(0x[0-9A-F]+)|[0-9.]+)\/.*/ 

참고.

같은 것이 skype://18005551212 또는 gopher://localhost과 같은 유효한 URL입니다. 지옥, 당신이 찾아 사용중인에 따라 다음은 모든 (꽤 같은 가상 호스트하지만) 동일한 서버에 도착하는 유효한 방법이 될 수 있습니다

그들은 Firefox에서 나를 위해 모든 작업.

추가 제한 사항을 원할 경우 그 내용을 결정하십시오. 유효한 프로토콜을 기꺼이 희생하겠습니까? 정말로 하나 또는 두 개의 프로토콜에만 관심이 있습니까?

더 구체적인 질문을 통해 구체적인 답변을 얻을 수 있습니다.

+0

초기 답변에 감사드립니다. 일반적인 영숫자 URL만으로 충분합니다. 이는 고객의 웹 사이트 관련 정보입니다. 감사. – mike

+0

나는 또한이 정규 표현식을 간단하게 만드는 것에 대해 위에서 언급했다. 어쩌면 최소한 1 개의 기간 만 확인하고 연속적으로 1 개 이상의 기간이나 슬래시를 허용하지 마십시오. 진실은 고객이 http : // www 부분을 무시하도록 권장했지만 사용자가 입력 할 내용을 알지 못합니다. 다시 한 번 감사드립니다. – mike

+0

흥미 롭습니다.우리는 항상 이메일 클라이언트, 블로그 소프트웨어 등에서 문자열의 적절한 일치를 보장하기 위해 http : //를 남겨 두는 것이 좋습니다. "www"를 제외하면 일반적으로 문제가되지 않습니다. 도메인 자체의 IP 레코드가 웹 서버와 동일하지 않은 경우 대부분의 장소에서 최소한 리디렉션을 제공합니다. MX 호스트를 찾을 수없는 경우 도메인의 주소 레코드가 SMTP에도 사용될 수 있습니다. – ghoti