Ayúdame a escribir el código como "si mi cadena es una URL válida" smth " ¿Es posible escribir esto en un par de cadenas de código?¿Cómo comprobar rápidamente si el objeto NSString es una URL válida?
Respuesta
Supongo que por URL, se refiere a una cadena que identifica una ubicación de recursos de Internet.
Si tiene una idea sobre el formato de la cadena de entrada, entonces ¿por qué no verificar manualmente si la cadena comienza con http://
, https://
o cualquier otro esquema que necesite? Si espera que otros protocolos, también se puede añadir a la lista de verificación (por ejemplo ftp://
, mailto://
, etc)
if ([myString hasPrefix:@"http://"] || [myString hasPrefix:@"https://"])
{
// do something
}
Si usted está buscando una solución más sólida y detectar cualquier tipo de esquema de URL, entonces debería usa una expresión regular
Como nota al margen, la clase NSURL está diseñada para expresar cualquier tipo de ubicación de recursos (no solo recursos de Internet). Es por eso que cadenas como img/demo.jpg
o file://bla/bla/bla/demo.jpg
se pueden transformar en objetos NSURL.
Sin embargo, de acuerdo con la documentación, [NSURL URLWithString]
debe devolver nil si la cadena de entrada no es una cadena válida de recursos de Internet. En la práctica, no.
¡Gran respuesta! Gracias. Y lo más importante es que funciona bien para mí. – Stas
Intente crear NSUrl con él, y vea si devuelve un resultado no nulo.
He intentado ya que: si ([NSURL urlWithString: urlString]! = Nil) {} pero por alguna razón que sólo me devuelve mi cadena !! (Aunque la descripción del método dice que debe devolver nil si la cadena no es una URL válida ... realmente no sé por qué) – Stas
if ([NSURL URLWithString:text]) {
// valid URL
}
else {
// invalid URL
}
ese es el punto en que no funciona ... ¿he encontrado un error extraño o qué? ? Tengo un inicio de sesión en el si NSLog (@ "url no válido:% @", [NSURL URLWithString: urlString]); Y me muestra: url no válido: img/playgrounds.png – Stas
Es por eso que deberías decir lo que ya has intentado en tu pregunta. Si su cadena es literalmente "img/playgrounds.png", entonces es correcta; esa no es una URL válida. Si lo intenta con, digamos, 'http: // img.ly/playground.png', entonces funcionará. –
+ (BOOL)validateUrlString:(NSString*)urlString
{
if (!urlString)
{
return NO;
}
NSDataDetector *linkDetector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeLink error:nil];
NSRange urlStringRange = NSMakeRange(0, [urlString length]);
NSMatchingOptions matchingOptions = 0;
if (1 != [linkDetector numberOfMatchesInString:urlString options:matchingOptions range:urlStringRange])
{
return NO;
}
NSTextCheckingResult *checkingResult = [linkDetector firstMatchInString:urlString options:matchingOptions range:urlStringRange];
return checkingResult.resultType == NSTextCheckingTypeLink
&& NSEqualRanges(checkingResult.range, urlStringRange);
}
esto funciona. Gracias – kevinl
que utilizan esta solución, que es al parecer una chequeo y menos complejo que un cheque Regex -
- (BOOL)isURL:(NSString *)inputString
{
NSURL *candidateURL = [NSURL URLWithString:inputString];
return candidateURL && candidateURL.scheme && candidateURL.host;
}
- 1. C++ comprobar si una fecha es válida
- 2. ¿Cómo puedo comprobar si una URL es una imagen válida (en javascript)?
- 3. Cómo comprobar si una sesión no es válida
- 4. ¿Cómo comprobar si la ruta es válida en boost :: filesystem?
- 5. C# ¿Cómo puedo verificar si existe una URL/es válida?
- 6. Comprobar si un objeto es NSInteger
- 7. Comprobar si una ruta es válida en Python
- 8. ¿Cómo comprobar si NSString es numérico o no
- 9. ¿Cómo comprobar si la consulta MySQL es válida sin ejecutarla?
- 10. ¿Cuál es el complicant RFC y trabajando expresión regular para comprobar si una cadena es una URL válida
- 11. AIR, Flex: cómo comprobar si la expresión regular es válida
- 12. IOS no puede comprobar si el objeto es nulo
- 13. Cómo verificar si la URL es válida en Android
- 14. ¿Cómo comprobar si un objeto no es una matriz?
- 15. ¿Cómo comprobar si el objeto es un elemento DOM?
- 16. ¿Es esta una prueba válida para comprobar si una URL hace referencia a una imagen en JS/jQuery
- 17. Comprobar si existe una URL en Ruby
- 18. ¿Cómo comprobar que la URL es una fuente de imagen válida utilizando Jquery?
- 19. Cómo comprobar si el objeto dado es objeto o Matriz en cadena JSON
- 20. ¿Cómo comprobar rápidamente si la carpeta está vacía (.NET)?
- 21. Objetivo-C: Cómo comprobar si una variable es un objeto, una estructura u otra primitiva
- 22. Comprobar si NSString contiene alfanumérico + guiones bajos solamente
- 23. cómo comprobar si java.lang.reflect.Type es una enumeración
- 24. Comprobar si la cadena dada es una dirección URL
- 25. Cómo comprobar que una cadena uri es válida
- 26. Cómo concatenar una url nsstring
- 27. cómo comprobar si el objeto ya existe en una lista
- 28. ¿Cómo comprobar si una matriz de bytes es una imagen válida?
- 29. cheque MongoDB Nodo si objectid es válida
- 30. ¿Cómo comprobar si existe una imagen con una URL determinada?
Por "válida" ¿simplemente decir cumplir con los requisitos de sintaxis, o quiere usted decir que apunta a una sitio existente? –
necesito sólo la sintaxis correcta .. – Stas