Seite 1 von 1
Formatierung Telefonnumern in Deutschland
Verfasst: Sa 28. Mär 2026, 12:13
von rainerwahnsinn
Moin!
Wie kann ich in einer Tabelle die Telefon- und Mobilfunknummern in einem deutschen Format als Eingabemuster vorgeben?
Die Nullen in der Vorwahl werden bei mir mit "#####-000000000" geschluckt.
Was wenn ich einen Kunden mit 3stelliger Vorwahl,mit 4 oder 5stelliger Vorwahl habe?
Bei der Gelegen heit möchte ich bei der Eingabe von eMail-Adressen prüfen, ob es sich um eine gültige eMail-Adresse handelt. Also ein @ und Domain...
Bisher habe ich nichts dazu gefunden...
Gruß
Rainer
Re: Formatierung Telefonnumern in Deutschland
Verfasst: Sa 28. Mär 2026, 12:36
von Mondblatt24
Hallo,
Telefonnummern, Postleitzahlen und ggf. Hausnummern immer als Text eingeben.
Gruß
Peter
Re: Formatierung Telefonnumern in Deutschland
Verfasst: Sa 28. Mär 2026, 17:43
von RobertG
Zu den Telefonnummern kann ich nichts sagen. Da gibt es meines Wissens kein Muster, da die Anzahl der Ziffern ja auch unterschiedlich ist. Meine eigene hat z.B. die Vorwahl und dann 5 Ortsziffern. Da kann ich ja nicht einfach Nullen dran hängen. Also hilft kein maskiertes Feld in der Formulareingabe.
Zur Mailadresse: Da habe ich in der XRechnungslösung diese Prozedur drin stehen
Code: Alles auswählen
SUB MailValid(oEvent AS OBJECT)
'Hier wird kein EMail-Validator aus dem Internet benutzt. Wer weiß, was dort mit den Mailadressen angestellt wird.
'Außerdem wird oft nicht die Adresse selbst überprüft sondern einfach testweise bei der Domain nachgefragt.
'Manche Domains geben zwar den Domainanteil korrekt zurück, liefern aber keine Antwort auf den lokalen Benutzeranteil.
'Gültige Mailadressen werden so als ungültig deklariert. Mit solchen "Algorithmen" arbeitet z.B. gmail bzw. googlemail.
'Die entsprechend aussortierten Zusender landen dann grundsätzlich im Spamfilter, obwohl die Adresse valide ist und existiert.
DIM oField AS OBJECT, oForm AS OBJECT, oController AS OBJECT, oView AS OBJECT
DIM stText AS STRING, stMsg AS STRING
DIM a(), aa()
oField = oEvent.Source.Model
stText = oField.Text
IF stText <> "" THEN
a = split(stText,"@")
IF Ubound(a()) < 1 THEN
stMsg = "Der Domänenteil bei der E-Mail-Adresse fehlt."
ELSEIF a(1) = "" THEN
stMsg = "Der Domänenteil bei der E-Mail-Adresse fehlt."
ELSEIF a(0) = "" THEN
stMsg = "Der lokale Teil bei der E-Mail-Adresse fehlt."
ELSEIF Ubound(a()) > 1 THEN
stMsg = "Das Zeichen '@' darf nur einmal vorkommen."
ELSE 'Ab hier erfolgt eine Untersuchung der Teile der Adresse
aa = split(a(1),".")
IF Ubound(aa()) < 1 THEN
stMsg = "Die Top-Level-Domain bei der E-Mail-Adresse fehlt."
ELSEIF aa(1) = "" THEN
stMsg = "Die Top-Level-Domain bei der E-Mail-Adresse fehlt."
ELSEIF aa(0) = "" THEN
stMsg = "Der Hostname bei der E-Mail-Adresse fehlt."
ELSEIF Len(aa(1)) < 2 THEN
stMsg = "Die Top-Level-Domain bei der E-Mail-Adresse ist zu kurz."
ELSE 'Hier könnten weitere Regeln greifen (ASCII-Code > 127 verboten ...)
END IF
END IF
IF stMsg <> "" THEN
msgbox (stMsg, 0, "Eingabe fehlerhaft")
REM Hier erfolgt kein Rücksprung in das Feld, da sonst bei einem Pflichtfeld und nicht korrekter Mail das Abspeichern unmöglich ist.
REM Das Feld sollte aber mit so etwas wie "fehlender Eintrag" versehen werden.
REM Soll stattdessen ein Rücksprung erfolgen, so müssen nur die folgenden Befehlen auskommentiert werden.
' oForm = oField.Parent
' oController = thisComponent.getCurrentController()
' oView = oController.getControl(oForm.getByname(oField.Name))
' oView.setFocus
END IF
END IF
END SUB
Gruß
Robert