Feld mit RegEx prüfen

19/10/2007 - 12:01 von Alex Steinhauer | Report spam
Hallo!

Kann mir bitte jemand helfen ein Problemchen zu lösen. Ich habe in
meinem Programm ein Feld, in welches eine Artikelnummer eingegeben
wird. Die Nummer besteht aus insgesamt 8 Ziffern getrennt mit einem
Leerzeichen in der Mitte (also "XXXX_XXXX", wobei "X" = Ziffer und "_"
= Leerzeichen). Die Eingabe der Zeichen habe ich bereits mit
"KeyPress" abgefragt. Was mir noch eingefallen ist, was ist eigentlich
mit Einfügen (Strg + V oder mit der Maus)? Einfügen kann man da noch
trotzdem beliebigen Mist. Deshalb möchte ich, dass beim Einfügen die
TextBox überprüft wird, ob der Text dem oben genannten Muster
entspricht. Ich habe versucht das Problem mit RegEx zu lösen, aber
irgendwie komme ich damit nicht klar. Das Problem ist, dass in die
TextBox nicht unbedingt die Artikelnummer komplett eingegeben werden
soll, sondern es kann nur ein Teil eingegeben werden z.B. nur dir
ersten 3 Stellen usw. Kann mir jemand Paar Tipps geben, wie ich mein
Problem lösen kann?


Gruß
Alex
 

Lesen sie die antworten

#1 Jens Müller
19/10/2007 - 15:45 | Warnen spam
Alex Steinhauer wrote:
Die Nummer besteht aus insgesamt 8 Ziffern getrennt mit einem
Leerzeichen in der Mitte (also "XXXX_XXXX", wobei "X" = Ziffer und
"_"
= Leerzeichen).

Deshalb möchte ich, dass beim Einfügen die
TextBox überprüft wird, ob der Text dem oben genannten Muster
entspricht.



Gute idee.

Ich habe versucht das Problem mit RegEx zu lösen, aber
irgendwie komme ich damit nicht klar.



VB unterstützt direkt keine Regulàren Ausdrücke. Der Like Operator kann
aber so etwas àhnliches, in diesem Fall würde ich es aber einfach
prüfen:

Das Problem ist, dass in die
TextBox nicht unbedingt die Artikelnummer komplett eingegeben werden
soll, sondern es kann nur ein Teil eingegeben werden z.B. nur dir
ersten 3 Stellen usw. Kann mir jemand Paar Tipps geben, wie ich mein
Problem lösen kann?



Function Check(text as string) as Boolean
Check = false
if len(text) < 9 then
for i = 1 to len(text)
if i = 5 then
if mid(text,i,1) <> " " then exit function
else
if asc(mid(text,i,1)) < asc("0") or asc(mid(text,i,1)) > asc("9")
then exit function
end if
next i
check = true
end if
end funciton

Ungetestet, aber HTH,
Jens

Ähnliche fragen