Hallo,
ich möchte gerne einen InputFilter verwenden, der die Eingabe auf folgendes Format beschränkt: 1/2/3
Die erste Zahl hat den Wertebereich 0-13, die zweite Zahl 0-7 und die letzte Zahl von 0-255.
Ich muss also meinen String mit .matches() überprüfen, versteh aber nicht wie das geht...
Hier mal als Beispiel der InputFilter für IP-Adressen, den ich im Internet gefunden hab. Ist für Android, aber die matches-Funktion ist ja von Java:
ich möchte gerne einen InputFilter verwenden, der die Eingabe auf folgendes Format beschränkt: 1/2/3
Die erste Zahl hat den Wertebereich 0-13, die zweite Zahl 0-7 und die letzte Zahl von 0-255.
Ich muss also meinen String mit .matches() überprüfen, versteh aber nicht wie das geht...
Hier mal als Beispiel der InputFilter für IP-Adressen, den ich im Internet gefunden hab. Ist für Android, aber die matches-Funktion ist ja von Java:
Java:
//Use a input filter for the input of the IP address
InputFilter[] filters = new InputFilter[1];
filters[0] = new InputFilter() {
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
if (end > start) {
String destTxt = dest.toString();
String resultingTxt = destTxt.substring(0, dstart) + source.subSequence(start, end) + destTxt.substring(dend);
if (!resultingTxt.matches ("^\\d{1,3}(\\.(\\d{1,3}(\\.(\\d{1,3}(\\.(\\d{1,3})?)?)?)?)?)?")) {
return "";
} else {
String[] splits = resultingTxt.split("\\.");
for (int i=0; i<splits.length; i++) {
if (Integer.valueOf(splits[i]) > 255) {
return "";
}
}
}
}
return null;
}
};
et_router_ip.setFilters(filters);
Zuletzt bearbeitet: