AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

RegEx dd.mm.yyyy hh:mm

Ein Thema von ByTheTime · begonnen am 31. Dez 2014 · letzter Beitrag vom 3. Jan 2015
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: RegEx dd.mm.yyyy hh:mm

  Alt 31. Dez 2014, 11:25
So ein Monster würde ich nur mit einem UnitTest in die Produktiv-Umgebung übernehmen, mit gaaaanz vielen negativ und vielen positiv Prüfungen.

Oder einfach ganz was anderes nehmen ...
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.372 Beiträge
 
Delphi 12 Athens
 
#2

AW: RegEx dd.mm.yyyy hh:mm

  Alt 31. Dez 2014, 11:29
TryStrToDateTime?

Na ist doch aber immrerhin schonmal 18 Zeilen/Blöcke kürzer.


So, und jetzt basteln wir uns einen eMail-Valiador, der alle möglichen RFCs abdeckt und alle (aktuell) bekannten TLD beachtet, sowie alle mehrteiligen TLDs ala xxx.de.co und inkl. Porno-/Spamfilter bekannter Mailadressen usw.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (31. Dez 2014 um 11:34 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: RegEx dd.mm.yyyy hh:mm

  Alt 31. Dez 2014, 12:06
Ein email-Adress-Validator ist schon gut, aber wenn der auch noch nach Spam etc. schauen soll, dann macht der schon zuviel. Das muss man mehrstufig machen.
Delphi-Quellcode:
TEmailAddress = record
private
  FValue : string;
public
  // prüft den String mit IsValid und erzeugt den Record
  // bei IsValid = false wird eine Exception geworfen
  constructor Create( const AEmailAddressStr : string );
  class operator implicit ( const s : string ) : TEmailAddress;
  class operator implicit ( const e : TEmailAddress ) : string;
  class function IsValid( const AStr : string ): Boolean;
  function ToString : string;
  // weitere Operatoren wie Equal oder Methoden wie IsEmpty
end;
und der SpamFilter dann
Delphi-Quellcode:
function IsSpamEmail( const AEmailAddress : TEmailAddress ) : Boolean;
begin
  // hier Prüfung auf Spam-Domains
end;
Die Funktion kann jetzt aufgerufen werden mit IsSpamEmail( 'foo@bar.com' ) und der String wird in den Record umgewandelt und dabei gleichzeitig überprüft. Wenn das keine korrekte email-Adresse ist, dann wirft die Record-Umwandlung eine Exception. Darum kann ich mich in der Funktion darauf verlassen, dass ich nur korrekte Email-Adressen bekomme

Damit es nicht zu OT wird, das funktioniert natürlich auch für Datum, Zeit, etc.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (31. Dez 2014 um 12:10 Uhr)
  Mit Zitat antworten Zitat
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#4

AW: RegEx dd.mm.yyyy hh:mm

  Alt 3. Jan 2015, 11:32
Hmm, da ist was dran... Perfekt ist mein Ausdruck noch nicht

Allerdings geht es hier nicht um Delphi/Pascal ^^ Ich brauche das für eine PHP-Anwendung. Und RegEx schien mir bis jetzt die beste Lösung.
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.372 Beiträge
 
Delphi 12 Athens
 
#5

AW: RegEx dd.mm.yyyy hh:mm

  Alt 3. Jan 2015, 12:05
PHP-Quellcode:
class EmailAddress {

    private var $Value;

    function __construct( $EmailAddressStr )
    {

    ...
}
:hust:
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.045 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

AW: RegEx dd.mm.yyyy hh:mm

  Alt 3. Jan 2015, 12:24
Typischer Fall von XY Problem

Ich würd ja die richtige Methode für das Problem empfehlen.

Wenn du ein Problem hast und glaubst, Regex wäre die Lösung, dann hast du zwei Probleme (frei nach Jamie Zawinski).
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#7

AW: RegEx dd.mm.yyyy hh:mm

  Alt 3. Jan 2015, 13:46
Schöne Links, allerdings glaube ich nicht, das die richtige Lösung für das Problem ist, welches imho ursprünglich in der clientseitigen(?) Überprüfung eines Textes gegen ein bestimmtes Datumsformat bestand.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz