Willkommen in der Programmierwelt!
Ich glaube nicht, dass Ihre Frage ein Symptom für einen Fehler auf Ihrer Seite ist. Vielmehr ist es ein Grundproblem, das in vielen Gestalten in der Programmierwelt erscheint. Zeichenfolgen mit einer gewissen Struktur und , die bedeuten, werden zwischen verschiedenen Subsystemen einer Anwendung weitergegeben und jedes Subsystem kann nur viel Parsing und Validierung durchführen.
Das Problem der E-Mail-Adresse, zum Beispiel der Überprüfung, ist ziemlich schwierig. Die regulären Ausdrücke, die verschiedene Personen anbieten, die zum Beispiel eine E-Mail-Adresse akzeptieren, sind im Allgemeinen entweder "zu eng" (nicht alles akzeptieren) oder "zu locker" (illegale Dinge akzeptieren).The first google hit für ‚regex‚E-Mail-Adresse‘‘, zum Beispiel sagt:
Der reguläre Ausdruck ich die meisten Feedback erhalten, nicht auf „Bug“ Berichte zu erwähnen, ist diejenige, die Sie rechts auf finden Homepage dieser Site: \ b [A-Z0-9 ._% + -] + @ [A-Z0-9 .-] +. [AZ] {2,4} \ b Analysieren Sie diesen regulären Ausdruck mit RegexBuddy . Dieser reguläre Ausdruck, I Anspruch, stimmt mit jeder E-Mail-Adresse überein. Am meisten des Feedbacks ich widerrufe, dass Anspruch durch Anzeigen einer E-Mail-Adresse , dass diese Regex nicht übereinstimmt.
Tatsache ist das, was ist oder keine gültige E-Mail-Adresse ist ein komplexes Problem, eine, die ein bestimmtes Programm könnte oder vielleicht nicht will, zu lösen. Das Problem der URLs ist noch schlimmer, besonders angesichts der Möglichkeit von bösartigen URLs.
Idealerweise können Sie eine Bibliothek oder einen Systemaufruf haben, der Probleme dieser Art löst, anstatt selbst etwas zu tun (Microsoft Windows ruft ein benutzerdefiniertes Dialogfeld auf, damit der Benutzer eine Datei auswählen oder erstellen kann, da die Dateinamen überprüft werden) ein weiteres kniffliges Problem). Aber Sie können nicht immer damit rechnen, dass Sie einen passenden Systemaufruf für eine bestimmte "aussagekräftige Zeichenfolge" haben.
Ich würde sagen, dass es keine generische Lösung für das Problem der Strings-mit-Struktur gibt. Es ist vielmehr ein grundlegendes Problem, das beim Entwerfen Ihrer Anwendung angezeigt wird. In dem Prozess von gathering requirements für Ihre Anwendung sollten Sie bestimmen, welche Daten die Anwendung einnimmt und wie sinnvoll, dass Daten an die Anwendung sein werden. Und das ist der Punkt, an dem die Dinge schwierig werden, da Sie vielleicht die Möglichkeit bemerken, dass die App so wächst, wie es Ihrem Chef oder Kunden vielleicht nicht eingefallen ist - oder dass die App tatsächlich auf eine Weise wächst, an die niemand von Ihnen gedacht hat. So muss die Anwendung eine kleine flexibler als was scheint das Minimum, aber nur ein wenig sein. Es sollte auch nicht so flexibel sein, dass Sie stecken bleiben.
Nun, wenn Sie entscheiden, dass Sie eine gegebene Zeichenfolge validieren/interpretieren müssen usw., kann das Einfügen dieser Zeichenfolge in ein Objekt oder einen Hash ein guter Ansatz sein - dies ist eine Möglichkeit, um sicherzustellen, dass Ihre Schnittstelle klar ist. Aber die schwierige Sache ist die Entscheidung, wie viel Validierung oder Interpretation Sie benötigen.
Diese Entscheidungen zu treffen, ist also eine Kunst - hier gibt es keine dogmatischen Antworten.
Ursprünglich akzeptierte ich Morendils Antwort, aber nach einigem Nachdenken und Nachlesen habe ich beschlossen, deins zu akzeptieren. Es ist nicht so, dass ich mit Morendil nicht einverstanden bin, aber Ihre Antwort ist allgemeiner, weniger dogmatisch und eher im Einklang mit der Art von Diskussion, die ich anregen wollte. Vielen Dank! – Metaphile