¿Cómo verifica que una cadena uri es válida (que puede alimentarla al constructor Uri)?Cómo comprobar que una cadena uri es válida
Hasta ahora sólo tienen la siguiente, pero por razones obvias preferiría una manera menos bruta:
Boolean IsValidUri(String uri)
{
try
{
new Uri(uri);
return true;
}
catch
{
return false;
}
}
Probé Uri.IsWellFormedUriString pero no parece que les gusta todo lo que usted puede lanzar en el constructor Por ejemplo:
String test = @"C:\File.txt";
Console.WriteLine("Uri.IsWellFormedUriString says: {0}", Uri.IsWellFormedUriString(test, UriKind.RelativeOrAbsolute));
Console.WriteLine("IsValidUri says: {0}", IsValidUri(test));
La salida será:
Uri.IsWellFormedUriString says: False
IsValidUri says: True
actualización/respuesta
El constructor utiliza Uri tipo absoluto por defecto. Esto estaba causando una discrepancia cuando intenté usar Uri.TryCreate y el constructor. Obtendrá el resultado esperado si coincide con UriKind para el constructor y TryCreate.
Gracias,
¡Buena función que ha realizado! +1 –
No agregue una respuesta como edición a la pregunta. Si agrega algo a las respuestas existentes, agréguelo como una respuesta separada. Por favor edite la respuesta de su pregunta. –
posible duplicado de [¿Cómo comprobar si una cadena es una URL HTTP válida?] (Http://stackoverflow.com/questions/7578857/how-to-check-whether-a-string-is-a-valid-http -url) – Amalea