Hallo, ich habe mich heute Mittag schonmal totprobiert an einem RegEx.
Und zwar soll der String wie folgt aufgebaut sein:
- min. 12 Zeichen
- min. 2 Kleinbuchstaben
- min. 2 Großbuchstaben
- min. 2 Zahlen
- min. 2 "sonstige Zeichen" (Sonderzeichen)
=> 12-8 -> min. 4 Zeichen, egal welchen Typs
An dem RegEx bin ich letztendlich gescheitert
Vielleicht hat ja jemand die Muse sowas mal zusammenzustückeln
Ich habs dann so gemacht:
mfg Verjigorm
Und zwar soll der String wie folgt aufgebaut sein:
- min. 12 Zeichen
- min. 2 Kleinbuchstaben
- min. 2 Großbuchstaben
- min. 2 Zahlen
- min. 2 "sonstige Zeichen" (Sonderzeichen)
=> 12-8 -> min. 4 Zeichen, egal welchen Typs
An dem RegEx bin ich letztendlich gescheitert
Vielleicht hat ja jemand die Muse sowas mal zusammenzustückeln
Ich habs dann so gemacht:
Code:
public class EingabePruefung {
public static void main(String[] args)
{
String text = "12aaAA++1a2b**";
int buchstaben_klein = 0;
int buchstaben_gross = 0;
int sonstige_zeichen = 0;
int zahl = 0;
for(int i=0; i<text.length(); i++)
{
if((""+text.charAt(i)).matches("[a-z]"))
buchstaben_klein++;
else if((""+text.charAt(i)).matches("[A-Z]"))
buchstaben_gross++;
else if((""+text.charAt(i)).matches("[\\d]"))
zahl++;
else
sonstige_zeichen++;
}
System.out.println("Länge: " + text.length()+
"\nKleinbuchstaben: "+buchstaben_klein+
"\nGroßbuchstaben: "+buchstaben_gross+
"\nZahlen: "+zahl +
"\nSonstige Zeichen: "+sonstige_zeichen);
if(text.length() < 12 || buchstaben_klein < 2 || buchstaben_gross < 2 || sonstige_zeichen < 2 || zahl < 2)
{
System.out.println("ungültig!");
}
else
System.out.println("gültig");
}
}
mfg Verjigorm