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