Ich habe die folgende Regex, um zu überprüfen, ob eine URL gültig ist:
%Vor% Ich möchte diesen Teil [a-zA-Z0-9\.\-\_]+(\.[a-zA-Z]{2,3})
(zumindest hoffe ich, es ist dieser fettgedruckte Teil) entweder als IP-Adresse oder als hervorgehobener Teil verwenden.
Im Moment ist der Regex ziemlich gut für mich, da er die schlechten URLs richtig findet - obwohl ich glaube, dass das nicht mehr richtig funktionieren wird, sobald die neue Domain Policy von ICANN live geht (dh url Ссылка - statt Ссылка für die Suche)
Jedenfalls möchte ich die Möglichkeit hinzufügen, dass IP-Adressen auch eine gültige URL sein können, aber ich bin mir nicht sicher, wie ich das in die Regex einbeziehen kann
Wenn jemand eine Hand leihen könnte, dann wäre das großartig!
Dieser Regex scheint zu funktionieren:
%Vor%Im Abschnitt nach der Überprüfung für "http" wird einfach eine ODER-Operation ausgeführt, um entweder einen Domänennamen oder eine IP-Adresse zu finden. Hier ist der relevante Auszug:
%Vor% Der IP-Ausdruck ist etwas lang, aber es stellt sicher, dass es eine gültige IP ist (wie in, nicht 999.999.999.999
). Sie können es leicht für eine andere IP-Prüfung ersetzen.
Hier ist es in Ihrem früheren Code enthalten:
%Vor%Zwei Punkte. Top Level-Domains scheinen jetzt bei 6 Charakteren (Museum) zu liegen, also müssen wir das berücksichtigen:
%Vor%In C-basierten Sprachen müssen wir diesen \
entkommen %Vor%In Ziel C können wir eine Kategorie-Methode für NSString definieren:
%Vor%Beachten Sie, dass diese Lösung IPv6 vollständig ignoriert!