나는 현재 검증 URL에 다음과 같은 정규 표현식을 사용하고 있습니다에 정규식이 필요 :의 URL 및 지원 20 %의 유효성을 검사하고()
^(?#Protocol)(?:(?:ht|f)tp(?:s?)\:\/\/|~\/|\/)?(?#Username:Password)(?:\w+:\[email protected])? (?#Subdomains)(?:(?:[-\w]+\.)+(?#TopLevel Domains)(?:com|org|net|gov|mil|biz|edu|info|mobi|name|aero|jobs|museum|travel|[a-z]{2}))(?#Port)(?::[\d]{1,5})?(?#Directories)(?:(?:(?:\/(?:[-\w~!$+|.,=]|%[a-f\d]{2})+)+|\/)+|\?|#)?(?#Query)(?:(?:\?(?:[-\w~!$+|.,*:]|%[a-f\d{2}])+=?(?:[-\w~!$+|.,*:=]|%[a-f\d]{2})*)(?:&(?:[-\w~!$+|.,*:]|%[a-f\d{2}])+=?(?:[-\w~!$+|.,*:=]|%[a-f\d]{2})*)*)*(?#Anchor)(?:#(?:[-\w~!$+|.,*:=]|%[a-f\d]{2})*)?$
내가 웹상에서이 빌린를 (기억이 안나요 경우)이을 개선하는 방법 :
이^((https?|file|ftp|gopher|news|nntp):\/\/)([a-z]([a-z0-9\-]*\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)|(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))(\/[a-z0-9_\-\.~]+)*(\/([a-z0-9_\-\.]*)(\?[a-z0-9+_\-\.%=&]*)?)?(#[a-z][a-z0-9_]*)?$
그러나, 이들 중 어느 것도이 URL을 검증 할 수있다() 유효해야한다 :
http://somedomain.com/users/1234/images/Staff%20Photos%202008/FirstName%20LastName_1%20(Small).jpg
문제는 % 20 및 대괄호()입니다. 내가 할 수도있는 것처럼 시도해보십시오. 위의 URL을 올바르게 검증하기 위해 위의 정규 표현식을 얻을 수 없습니다. 멋진 정규 표현식을 작성하는 데 익숙하지 않아 도움이되지 않습니다. 내가 발견 한 다른 모든 웹 결과는 다음과 같은 바보 같은 일에 실패합니다.
http://www.test..com
도움을 주시면 감사하겠습니다.
정규 표현식이이 용도에 적합한 도구라고 생각하지 않습니다. 정규식을 사용해야하는 이유가 있습니까? –
어떤 언어를 사용하고 있습니까? 아마 그것을 검증하는 또 다른 방법이있을 것입니다. –
안녕하세요, 저는 실제로 ASP.NET MVC에서 C#을 사용하여 웹 응용 프로그램을 작성하고 있습니다. 내 유효성 검사 레이어는 Regex를 사용하여 입력 한 URL이 유효한지 확인합니다 (전자 메일 및 전화 확인과 비슷 함). URL은 인터넷 및 인트라넷에있는 파일의 위치를 나타냅니다. 양식을 게시 할 때이 유효성 검사를 수행하는 정규식보다 나은 방법이 있습니까? –