myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   C# Anfänger Email Abfrage (https://mygully.com/showthread.php?t=2718538)

SpeedCrew 04.10.12 10:36

C# Anfänger Email Abfrage
 
Guten tag liebe Community, ich habe gerade angefangen mit C# und wollte gerne eine TextBox.Text überprüfen ob eine email drinne steht und nicht nur hd92z2gbdiz2t87 irg welche zeichen :) wie kann ich das anstellen ? Am besten so einfach wie mögich.

if(TextBox.Text == (Emailüberprüfen)
{
MessageBox.Show("Email Richtig")
}
else
{
MessageBox.Show("Email Falscg")
}

XxeragonxX 04.10.12 10:44

Naja, weiß jetzt nicht wie die Syntax in C# ansieht. Ich würde den String jedoch in ein Char-Array speichern und überprüfen ob dieses ein Punkt, ein @ bzw ein Länder kürzel enthält (z.B .de, dies wird man jedoch besser mit dem vorhandenen String testen können). Wenn du es ganz genau machen willst, kannst du natürlich auch die Charfächer auf die Anzahl enthaltener Zahlen überprüfen und ab einer gewissen anzahl sagen, dass ist keine Email mehr, jedoch ist dies denke ich nicht nötig.

SpeedCrew 04.10.12 10:53

Könnte man das vl noch ein beispiel code posten wie geschrieben bin ein anfänger :P

XxeragonxX 04.10.12 10:58

PHP-Code:

    public boolean emailTesten(String s){
        
char[] charArray s.toCharArray();
        
        for (
int i 0charArray.lengthi++) {
            if(
charArray[i] == '@'){
                
charArray.length -1// Wenn kein "." gefunden wurde, geht er nach folendung 
                                                                  //  der For schleife sofort aus der Methode und return false
                
for (int j 0charArray.lengthj++) {
                    if(
charArray[j] == '.'){

                        return 
true;

                    }
                }
            }
        }
        return 
false
    } 


Dies ist jetzt Javacode. Ich weiß nicht in wieweit du das in C# verwenden kannst.
Falls du Fragen zu dem Code hast, einfach Fragen.

So naja, man überprüft jetzt nur ob ein @ bzw. ein . vorhanden sind. Es wird aber nicht geprüft wo sich diese befinden. Wenn du es noch genauere haben willst, wäre es gut wenn du dich selbst drann setzt und dann anschließend bei Fragen, Lösungen und Problemen dich hier wieder meldest.

m9716 04.10.12 12:22

Du hast 2 Möglichkeiten:

1. manuell die E-Mail-Adresse zerlegen und dabei ihre Teile getrennt prüfen und zwar:
Code:

<localpart> <@> <domain inkl evtl subdomains und tld>
Ein einfacher unvollständiger Code könnte so aussehen (auch Java):
PHP-Code:

public class EMailValidator {

    public 
boolean isValidEmail(final String mail) {
        if (
mail == null) {
            return 
false;
        }
        final 
String[] parts mail.split("@");
        if (
parts.length != 2) {
            return 
false;
        }
        return 
isValidLocalPart(parts[0]) && isValidDomainPart(parts[1]);
    }

    private 
boolean isValidLocalPart(final String part) {
        if (
part.isEmpty()) {
            return 
false;
        }
        
// TODO check local part
        
return false;
    }

    private 
boolean isValidDomainPart(final String part) {
        if (
part.isEmpty()) {
            return 
false;
        }
        final 
String[] domains part.split(".");
        if (
domains.length 2) {
            return 
false;
        }
        
// TODO check domains
        
return false;
    }



2. RegEx : damit ist das Ganze dann ein Einzeiler
It's your choice ...

deddly 07.10.12 22:02

So würde ich deine überprüfung durchführen:
C# Code

Code:

private void button1_Click(object sender, EventArgs e)
        {
            string text = textBox1.Text;

            if (überprüfen(text))
                MessageBox.Show("Email Richtig");
            else
                MessageBox.Show("Email Falsch");

        }
        public bool überprüfen(string s)
        {
            char[] text;
            text = s.ToCharArray(); // Stringtext in ein Char ablegen
            bool atVorhanden = false, punktVorhande = false;

            for (int i = 0; i < text.Length; i++) // alle char zeichen durchgehen
            {
                if (text[i] == '@') // Wenn aktuelles zeichen == '@' bool
                                            atVorhanden auf True setzen
                    atVorhanden = true;
                if (text[i] == '.') // Wenn aktuelles zeichen == '.' bool
                                            punktVorhanden auf True setzen
                    punktVorhande = true;
                if (punktVorhande && atVorhanden) // falls beide Zeichen in der
                                                Zeichenkette vorhanden sind verlasse die for Schleife und return
                                                Wahr (E-mail addresse gültig)
                    return true;
            }
                return false; // falls NICHT beide Zeichen vorhanden sind, return False (E-mail NICHT gültig
        }

bei Fragen unklarheiten, immer her damit...
hoffe konnte helfen
mfg

NetWebs 07.10.12 23:31

Alle genannten Lösungen lassen auch ungültige Emailadressen zu!

Benutze einen regulären Ausdruck.

Und lies mal bitte die Forenregeln...der Titel deines Threads ist schmarrn...

urga 08.10.12 00:16

a) regex in c# [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]
b) check auf gültige email [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:25 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.