Domino 9 und frühere Versionen > ND7: Entwicklung
[Gelöst] (Field) Input Validation auf XX999999
(1/1)
SlyFox:
Hallo,
ich muss prüfen, ob ein Feld folgende Kriterien erfüllt:
- Länge: 8 Zeichen
- Stelle 1 + 2: Buchstaben
- Stelle 3 - 8: Ziffern
Ich habe mir jetzt einen abgebrochen und folgende Formel erstellt, evtl. kennt jemand was effektiveres und ich habe mal wieder viel zu umständlich gedacht?
--- Code: ---tmpAlpha := "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
tmpDigit := "0123456789";
tmpErrorMsg := "Wrong User-Id. The User-Id must start with two alphabetic characters followed by six number characters. Example: BE123456";
@If(
!@Length(
@ThisValue
)
= 8;
@Failure(tmpErrorMsg);
""
);
@For(
counter := 0;
counter <= 1;
counter := counter + 1;
@If(
!@Contains(
tmpAlpha;
@Middle(
@ThisValue;
counter;
1
)
);
@Failure(tmpErrorMsg);
""
)
);
@For(
counter := 2;
counter <= 7;
counter := counter + 1;
@If(
!@Contains(
tmpDigit;
@Middle(
@ThisValue;
counter;
1
)
);
@Failure(tmpErrorMsg);
@Success
)
);
--- Ende Code ---
Vielen Dank für eure Tipps und Kommentare
Christoph
Glombi:
Ich hätts so gemacht:
Länge: 8 Zeichen
@Len(@Thisvalue) > 8
=> Error
- Stelle 1 + 2: Buchstaben
!@Matches(@Left(@ThisValue;2);"{A-Z}")
=> Error
- Stelle 3 - 8: Ziffern
!@Matches(@Right(@ThisValue;6);"{0-9}")
=> Error
Andreas
TRO:
@If( @Matches( @ThisValue; "{A-z}{A-z}{0-9}{0-9}{0-9}{0-9}{0-9}{0-9}" );@Success;@Failure("Da stimmt was nicht"))
Thomas
SlyFox:
Hallo,
@Matches kannte ich leider nicht sonst hätte ich mir viel Arbeit erspart. Danke für den Tipp.
Christoph
SlyFox:
Hallo Tro,
Mit {A-z} prüft man leider nicht nur auf Buchstaben, sondern auch noch auf ein paar andere Zeichen, aber trotzdem danke für deinen Tipp, einefach alles so hintereinander zu schreiben.
{A-Za-z}{A-Za-z}{0-9}{0-9}{0-9}{0-9}{0-9}{0-9} müsste demnach korrekt sein. Dann sollte auch die Überprüfung auf @Length(@ThisValue) = 8 wegfallen können.
Christoph
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln