Wie überprüft man schnell, ob das NSString-Objekt eine gültige URL ist?

7

Hilf mir, den Code zu schreiben, wie "wenn meine Zeichenfolge eine gültige URL ist, tu etw" Ist es möglich, dies in ein paar Zeichenfolgen zu schreiben?

    
Stas 13.02.2012, 12:46
quelle

5 Antworten

19

Ich nehme an, dass Sie sich per URL auf eine Zeichenfolge beziehen, die einen Internet-Ressourcenstandort identifiziert.

Wenn Sie eine Idee über das Format der Eingabezeichenfolge haben, dann überprüfen Sie bitte manuell, ob die Zeichenfolge mit http:// , https:// oder einem anderen Schema beginnt, das Sie benötigen. Wenn Sie andere Protokolle erwarten, können Sie diese auch zur Checkliste hinzufügen (z. B. ftp:// , mailto:// usw.)

%Vor%

Wenn Sie nach einer solideren Lösung suchen und jede Art von URL-Schema erkennen möchten, sollten Sie einen regulären Ausdruck verwenden.

Als Nebenbemerkung ist die NSURL-Klasse so konzipiert, dass sie jede Art von Ressourcenstandort ausdrückt (nicht nur Internet-Ressourcen). Deshalb können Strings wie img/demo.jpg oder file://bla/bla/bla/demo.jpg in NSURL-Objekte umgewandelt werden.

Gemäß der Dokumentation sollte [NSURL URLWithString] jedoch nil zurückgeben, wenn die Eingabezeichenfolge keine gültige Internet-Ressourcenzeichenfolge ist. In der Praxis tut es das nicht.

    
Andrei Stanescu 13.02.2012, 15:35
quelle
7

Ich habe diese Lösung verwendet, die anscheinend eine bessere und weniger komplexe Prüfung ist als eine Regex-Prüfung -

%Vor%     
Nishant 14.07.2015 12:30
quelle
6
%Vor%     
MarkII 26.06.2012 13:02
quelle
1

Versuchen Sie, NSUrl mit ihm zu erstellen, und sehen Sie, ob es nicht-Null-Ergebnis zurückgibt.

    
Nickolay Olshevsky 13.02.2012 12:49
quelle
0
%Vor%     
Stephen Darlington 13.02.2012 12:54
quelle

Tags und Links