.Net에 URL validator가 있습니까?
에서 URL을 확인할 수 있는 방법이 있습니까?넷, ASP.넷, 또는 ASP.순 MVC?
을 사용하여 URL의 유효성을 검사할 수 있습니다.
public bool IsValidUri(string uri)
{
Uri validatedUri;
return Uri.TryCreate(uri, UriKind.RelativeOrAbsolute, out validatedUri);
}
댓글을 보면 다음과.TryCreate
한 단계 아래로 처리하는 예외를 이동할 뿐입니다.하지만 소스코드를 확인해보니 그렇지 않습니다.안에 시도/잡히지 않음TryCreate
, 던져서는 안 되는 맞춤 파서를 사용합니다.
지금까지 제공된 답변은 스킴을 확인하지 않아 불필요한 모든 입력을 허용하여 자바스크립트 주입에 취약해질 수 있습니다(The Cloudless Sky의 코멘트 참조).
URI는 개체의 고유한 ID일 뿐입니다."C:\Test"는 유효한 URI입니다.
프로젝트에서 저는 다음 코드를 사용했습니다.
/// <summary>
/// Validates a URL.
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
private bool ValidateUrl(string url)
{
Uri validatedUri;
if (Uri.TryCreate(url, UriKind.Absolute, out Uri validatedUri)) //.NET URI validation.
{
//If true: validatedUri contains a valid Uri. Check for the scheme in addition.
return (validatedUri.Scheme == Uri.UriSchemeHttp || validatedUri.Scheme == Uri.UriSchemeHttps);
}
return false;
}
허용할 스킴을 정의하고 그에 따라 코드를 변경합니다.
uri를 사용할 수 있습니다.IsWellFormedUriString, 이를 위해 직접 함수를 만들 필요가 없습니다.
public static bool IsWellFormedUriString(string uriString, uriKind uriKind);
uriKind는 다음과 같습니다.
UriKind.RelativeOrAbsolute
UriKind.Absolute
UriKind.Relative
자세한 내용은 http://msdn.microsoft.com/en-us/library/system.uri.iswellformeduristring.aspx 을 참조하십시오.
VB에 좋은 코드가 필요한 경우.아르잔에서 온 순
'Validates a URL.
Function ValidateUrl(url As String) As Boolean
Dim validatedUri As Uri = Nothing
If (Uri.TryCreate(url, UriKind.Absolute, validatedUri)) Then
Return (validatedUri.Scheme = Uri.UriSchemeHttp Or validatedUri.Scheme = Uri.UriSchemeHttps)
End If
Return False
End Function
Try/Catch 기능을 사용하는 것보다 더 빠른 방법(아마도)은 Regex를 사용하는 것입니다.만약 당신이 1000개의 URL을 확인해야 한다면, 예외를 여러 번 잡는 것은 느릴 것입니다.
여기 샘플 리젝스 링크가 있습니다. 구글을 이용하여 더 많은 정보를 찾으세요.
static bool IsValidUri(string urlString) {
try {
new Uri(urlString);
return true;
} catch {
return false;
}
}
언급URL : https://stackoverflow.com/questions/927847/is-there-a-url-validator-on-net
'IT' 카테고리의 다른 글
싱글 페이지 애플리케이션이 블로그에 적합합니까? (0) | 2023.09.15 |
---|---|
MySQL 5.7로 덤프 파일 가져오기 (0) | 2023.09.15 |
mysql java 프로그램에서 works를 선택, 삽입 및 삭제하지만 업데이트가 작동하지 않습니다. (0) | 2023.09.15 |
Python에서 open과 codecs.open의 차이 (0) | 2023.09.15 |
Oracle에서 각 그룹의 최대값을 얻는 방법은 무엇입니까? (0) | 2023.09.15 |