Kurze Antwort
Verwenden Sie das WEB_URL-Muster in der Musterklasse
Patterns.WEB_URL.matcher(potentialUrl).matches()
Es wird True zurückgegeben, wenn die URL gültig ist, und false, wenn die URL ungültig ist .
Lange Antwort
Ab Android API Level 8 gibt es ein WEB_URL- Muster. Unter Angabe der Quelle entspricht sie "dem größten Teil von RFC 3987". Wenn Sie eine niedrigere API-Ebene anstreben, können Sie das Muster einfach aus der Quelle kopieren und in Ihre Anwendung aufnehmen. Ich gehe davon aus, dass Sie wissen, wie man Muster und Matcher verwendet, daher werde ich hier nicht näher darauf eingehen.
Auch die Klasse URLUtil bietet einige nützliche Methoden, z.
Die Beschreibungen der Methoden sind nicht sehr ausführlich, daher sollten Sie sich am besten die Quelle ansehen und herausfinden, welche am besten zu Ihrem Zweck passt.
Es gibt mehrere Möglichkeiten, wann die Validierungsprüfung ausgelöst werden soll: Sie können die EditText-Rückruffunktionen verwenden
oder verwenden Sie einen TextWatcher , der meiner Meinung nach besser wäre.
VERWENDEN SIE URLUtil NICHT , um die URL wie folgt zu überprüfen .
URLUtil.isValidUrl(url)
weil es Zeichenfolgen wie "http: //" als gültige URL gibt, was nicht wahr ist
quelle
Für den Fall, in Ihrem Unittest, hast du
NullPointerException
dann verwenden SiePatternsCompat
stattPatterns
.Außerdem wurde mir klar, dass diese Methode zurückgegeben wird,
true
wenn ich sie übergebePhoto.jpg
. Meine Erwartung istfalse
. Daher schlage ich folgende Methode anstelle der oben genannten vor.quelle
URLUtil.isValidUrl funktioniert, da es seit API-Level 1 existiert.
quelle
Verwenden Sie diesen regulären Ausdruck für die Validierung Ihrer Website
quelle
Oder Sie könnten einfach gut alt gebrauchen
Regex
Ich sage nicht, dass
Patterns.WEB_URL
das schlecht ist, es macht es einfach, zu testen, was übereinstimmt und was nicht.quelle