Hi
Wie kann ich checken, ob die Eingabe in eine Inputbox, der Syntax den ich will, stimmt?
Input1 darf zb.
- Nicht leer sein
- Einer gültigen Email entsprechen
Wie macht man das?
LG Max
Hi
Wie kann ich checken, ob die Eingabe in eine Inputbox, der Syntax den ich will, stimmt?
Input1 darf zb.
Wie macht man das?
LG Max
Auslesen und überprüfen ob es <> "" ist und für EMails gibts einen guten RegEx, musst du dir mal anschauen.
[autoit]StringRegExp()
[/autoit]hab ihn leider grad nicht im Kopf, les dir mal das Tut von BugFix durch.
Überprüfen ob es eine E-Mail ist:
[autoit]If StringInStr($sString,"@") >0 then
MsgBox(0,"","Es ist eine E-Mail")
EndIf
Was muss ich als "$sString" deklarieren?
Die Variable ist bei mir nicht vergeben...
$sString = GuiCtrlRead($Inputbox1)
[/autoit]
Allerdings ist diese Abfrage sehr dürftig, sie prüft ja nur, ob ein "@" im String vorkommt..
MfG,
Fresapore
Edit:
Schau dir für die RegExp-Pattern mal das an..
Danke!
EDIT: Ich steh grad aufm Schlauch... Wie frage ich ab, ob $input1 leer ist? Mir wills grad echt nicht einfallen...
If GuiCtrlRead ($nInput) <> "" ;; Wenn nicht leer
If GuiCtrlRead ($nInput) = "" ;; Wenn leer
Hier ein Beispiel mit StringRegEx
[autoit]
$emailinput = InputBox("Emailadresse eigeben","Adresse:","admin@znil.de")
;$emailgeprueft enthält 1 wenn eine Emailadresse gefunden wurde,
; Alternativ mal die anderen StringRegExp Parameter in der Hilfe ansehen - der kann auch ein Array mit den Adressen zurück geben etc.
$emailgeprueft = StringRegExp($emailinput,"(?i)\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}\b")
If $emailgeprueft = 1 Then
MsgBox(0,"Erfolgreich",$emailinput & " ist eine gültige Adresse")
Else
MsgBox(16,"Fehler",$emailinput & " ist keine Emailadresse")
EndIf
Noch mal geändert:
RegEx verkürzt und - gemäß meines eigenen Mantras - mit Kommentaren versehen:
$emailinput = InputBox("Emailadresse eigeben","Adresse:","admin@znil.de")
;$emailgeprueft enthält 1 wenn eine Emailadresse gefunden wurde,
; Alternativ mal die anderen StringRegExp Parameter in der Hilfe ansehen - der kann auch ein Array mit den Adressen zurück geben etc.
$emailgeprueft = StringRegExp($emailinput,"(?i)[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}")
; (?i) = Groß/Kleinschreibung ignorieren
;[A-Z0-9._%+-]+ = Finde etwas das die folgenden Zeichen enthält ...
; [A-Z = Buchstaben und / oder
; 0-9 = Zahlen und / oder
; ._% = Punkt, Unterstrich und / oder %
; +-] = Plus und/oder Minus
; + = (Hinter dem ]) in beliebiger Anzahl / Länge
; @ = auf jeden Fall ein @
;[A-Z0-9.-]+ = Wie zuvor, jedoch kein _ oder % (nicht erlaubt im Domänenteil
;\. = Auf jeden Fall mindestens einen Punkt
;[A-Z]{2,6} = Buchstaben, mindestens 2, maximal 6 = Domänenendung wie .com oder .de
; für die neuen Endungen wie .hamburg etc. müsste man den Wert erhöhen
If $emailgeprueft = 1 Then
MsgBox(0,"Erfolgreich",$emailinput & " ist eine gültige Adresse")
Else
MsgBox(16,"Fehler",$emailinput & " ist keine Emailadresse")
EndIf