Avatar billede mpless Nybegynder
14. maj 2003 - 10:19 Der er 16 kommentarer og
1 løsning

Validering: Let tjente point.

Hej

Jeg har denne her;

if (mail.indexOf(" ") != -1 || mail.indexOf("@") == -1 || mail.indexOf(".") == -1 || mail.length<6 || mail.lastIndexOf(".")<mail.indexOf("@") || mail.lastIndexOf(".") == mail.length-2) {
    mail = "*";
    i++;
}

Desværre kan man sende mail selvom der ikke er noget efter det sidste punktum .
Ex: nemme@point.      er gyldig
Ex: nemme@point.d    er ugyldig
Ex: nemme@point.dk    er gyldig


Hilfe Bitte ....

//pless
Avatar billede jakwag Nybegynder
14. maj 2003 - 10:55 #1
if (mail.indexOf(" ") != -1 || mail.indexOf("@") == -1 || mail.indexOf(".") == -1 || mail.length<6 || mail.lastIndexOf(".")<mail.indexOf("@") || mail.lastIndexOf(".") == mail.length-2 || mail.lastIndexOf(".")+1 == mail.length) {
    mail = "*";
    i++;
}
Avatar billede jakwag Nybegynder
14. maj 2003 - 10:57 #2
Jeg har sat denne linie ind:

|| mail.lastIndexOf(".")+1 == mail.length

De +1 er fordi at lastIndexOf er zero-indexed.

: ) Jakob
Avatar billede hoejrup Nybegynder
14. maj 2003 - 11:01 #3
if (mail.indexOf(" ") != -1 || mail.indexOf("@") != -1 || mail.indexOf(".") != -1 || mail.length>5 || mail.IndexOf(".")>mail.indexOf("@") || mail.IndexOf(".") == mail.length-2) {
    // Hvis alle de betingelser er sande, så send din post
    mail = "*";
    i++;
}

/per
Avatar billede mpless Nybegynder
14. maj 2003 - 11:01 #4
Er det nu dig igen ????
Jeg ved ikke helt om du fortjener pointene,
da du burde have svaret i den oprindelige tråd ...

Men så skidt da ... tak for hjælpen  :)
Avatar billede hoejrup Nybegynder
14. maj 2003 - 11:02 #5
Det var et svar!

/per
Avatar billede jakwag Nybegynder
14. maj 2003 - 11:05 #6
Ja, sorry.

Men jeg så dette spm før at jeg så din komentar på det andet.
Avatar billede jakwag Nybegynder
14. maj 2003 - 11:13 #7
per>> dit script kommer da ikke til at virke, gør det?

f.eks.: mail.IndexOf(".") == mail.length-2
Hvad nu hvis mail adressen er: jakob.wagner@mail.dk

Der er da også noget af det du har vent om. Udtrykket skal være sandt hvis at mailadressen ikke er rigtig.

Sådan har jeg ihvertfald forstået det...

: ) Jakob
Avatar billede barklund Nybegynder
14. maj 2003 - 11:27 #8
Jeg har lige lavet en RIGTIG funktion :)

function checkEmail(e) {
    var legalChars = "abcdefghijklmnopqrstuvwxyz0123456789";
    var allChars = legalChars+"-_";
    var pos = 0;
    var count;
    var start;
    var lastDot;
   
    while (e.charAt(pos) != "@") {
        if (pos != 0 && e.charAt(pos++) != ".") {
            return false;
        }
        if (legalChars.indexOf(e.charAt(pos++)) == -1) {
            return false;   
        }
        while(allChars.indexOf(e.charAt(pos)) != -1) {
            pos++;
        }
    }
    pos++;
    start = pos;
    lastDot = e.lastIndexOf(".");
    while (pos != lastDot) {
        if (pos != start && e.charAt(pos++) != ".") {
            return false;
        }
        if (legalChars.indexOf(e.charAt(pos++)) == -1) {
            return false;   
        }
        while(allChars.indexOf(e.charAt(pos)) != -1) {
            pos++;
        }
    }
    pos++;
    for(count = 0; pos < e.length && legalChars.indexOf(e.charAt(pos)) != -1; count++) {
        pos++;
    }
    return pos == e.length && count >= 2;
}

Den er lidt regexp-agtig, og parser emailen igennem et tegn af gangen. Hvis nogen finder en fejl, så er i velkomne til at sige til...

/Barklund
Avatar billede jakwag Nybegynder
14. maj 2003 - 11:43 #9
Barklund>> hej

hvis du køre en mail igennem uden "." eller "@" så laver den et uendeligt loop.

Jeg har ikke lige dykket i den for at se hvad fejlen er.

Men den returnere true hvis mailen er rigtig : )
Avatar billede jakwag Nybegynder
14. maj 2003 - 11:46 #10
Det er vel fordi du skriver:

while (e.charAt(pos) != "@") {

Så vil den vel blive ved indtil den finder @.
Avatar billede barklund Nybegynder
14. maj 2003 - 11:55 #11
En ny:

function checkEmail(e) {
    var legalChars = "abcdefghijklmnopqrstuvwxyz0123456789";
    var allChars = legalChars+"-_";
    var pos = 0;
    var count;
    var start;
    var lastDot = e.lastIndexOf(".");
    lastDot = lastDot == -1 ? e.length-1 : lastDot;
   
    while (pos < lastDot && e.charAt(pos) != "@") {
        if (pos != 0 && e.charAt(pos++) != ".") {
            return false;
        }
        if (legalChars.indexOf(e.charAt(pos++)) == -1) {
            return false;   
        }
        while(pos < lastDot && allChars.indexOf(e.charAt(pos)) != -1) {
            pos++;
        }
    }
    if (e.charAt(pos++) != "@") {
        return false;
    }
    start = pos;
    while (pos != lastDot) {
        if (pos != start && e.charAt(pos++) != ".") {
            return false;
        }
        if (legalChars.indexOf(e.charAt(pos++)) == -1) {
            return false;   
        }
        while(pos != lastDot && allChars.indexOf(e.charAt(pos)) != -1) {
            pos++;
        }
    }
    pos++;
    for(count = 0; pos < e.length && legalChars.indexOf(e.charAt(pos)) != -1; count++) {
        pos++;
    }
    return pos == e.length && count >= 2;
}
Avatar billede jakwag Nybegynder
14. maj 2003 - 11:59 #12
Så er den i orden.

Den vil jeg gemme til en gang jeg får brug for den.

NICE : )
Avatar billede mpless Nybegynder
14. maj 2003 - 15:44 #13
hmm ...
hvordan implementerer jeg lige den "RIGTIGE" funktion ?
Avatar billede jakwag Nybegynder
14. maj 2003 - 15:48 #14
Efter at du har skrevet barklunds script, skriver du:

checkEmail(mail);


: ) Jakob
Avatar billede barklund Nybegynder
15. maj 2003 - 01:15 #15
helt præcis er det:

if (!checkEmail(mail)) {
    mail = "*";
    i++;
}

Givet at funktionen er defineret på samme tidslinie som din knap :)
Avatar billede mpless Nybegynder
15. maj 2003 - 01:25 #16
hmmm ... den her virker ihvertfald ikke ... :(

on (release) {

i = 0

function checkEmail(e) {
    var legalChars = "abcdefghijklmnopqrstuvwxyz0123456789";
    var allChars = legalChars+"-_";
    var pos = 0;
    var count;
    var start;
    var lastDot = e.lastIndexOf(".");
    lastDot = lastDot == -1 ? e.length-1 : lastDot;
   
    while (pos < lastDot && e.charAt(pos) != "@") {
        if (pos != 0 && e.charAt(pos++) != ".") {
            return false;
        }
        if (legalChars.indexOf(e.charAt(pos++)) == -1) {
            return false;   
        }
        while(pos < lastDot && allChars.indexOf(e.charAt(pos)) != -1) {
            pos++;
        }
    }
    if (e.charAt(pos++) != "@") {
        return false;
    }
    start = pos;
    while (pos != lastDot) {
        if (pos != start && e.charAt(pos++) != ".") {
            return false;
        }
        if (legalChars.indexOf(e.charAt(pos++)) == -1) {
            return false;   
        }
        while(pos != lastDot && allChars.indexOf(e.charAt(pos)) != -1) {
            pos++;
        }
    }
    pos++;
    for(count = 0; pos < e.length && legalChars.indexOf(e.charAt(pos)) != -1; count++) {
        pos++;
    }
    return pos == e.length && count >= 2;
}
if (!checkEmail(mail)) {
    mail = "*";
    i++;
}

}
if (i == "0") {
        loadVariablesNum("Mail/mail2.php", "0", "POST");
        mail="";
        gotoAndPlay("Succes");
       
    } else {
        gotoAndPlay("Fejl");
          }
}
Avatar billede mpless Nybegynder
15. maj 2003 - 01:41 #17
Ahhhhhhhhhhhhhhhhhhhh ....
En } for meget lige inden    if (i == "0") {

Dammmm ... :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester