Avatar billede d.kryger Praktikant
13. februar 2006 - 09:46 Der er 17 kommentarer og
1 løsning

Felt skal være tal!

Hej eksperter.

Jeg har et text-felt som skal udfyldes. Hvis man ikke skriver noget i feltet kommer dette frem:
        if(document.tilmeldingsform.klub_1.value.length == 0)
        {
            alert("Fejl");
        }

Jeg vil gerne have det samme til min medlemsnummer, hvor der ikke må indtastes andet en tal. Hvordan gør man det?
Avatar billede d.kryger Praktikant
13. februar 2006 - 09:51 #1
Jeg har også et felt som hedder e-mail. Kan man på en simpel måde tjekke om det er en gyldig mailadresse som er indtastet i feltet?
Avatar billede Slettet bruger
13. februar 2006 - 10:02 #2
Tjek på kun tal:

if(str.match(/([^0-9]+)/g)) {
  document.write("der er ikke kun tal!");
}

Tjek på mail:

if(!str.match(/^(.+)@(.+)$/i)) {
  document.write("ugyldig email");
}

- Pattern til mailtjek kan du lave mere eller mindre avanceret. Lige pt. tjekker det bare om der er indeholdt et @ og om der er noget på begge sider af det.
Avatar billede d.kryger Praktikant
13. februar 2006 - 10:07 #3
Hvor får den af vide hvilket felt det er at den skal tjekke?
Avatar billede Slettet bruger
13. februar 2006 - 10:10 #4
Jeg skrev bare str for at indikere at det var en string.
Det kan du bare udskrifte med:
document.tilmeldingsform.DITFELTNAVN.value.match(blabla)
Avatar billede d.kryger Praktikant
13. februar 2006 - 10:17 #5
OK, tak for den hurtige hjælp!
Læg et svar og du får point!
Avatar billede Slettet bruger
13. februar 2006 - 10:19 #6
Svar. Selv tak.
Avatar billede d.kryger Praktikant
13. februar 2006 - 10:54 #7
Kan man lave det sådan at e-mail skal indeholde noget før @'et og noget efter @'et, dog ikke et punktum som det første. Det skal også indtastes et punktum efter @'et og min. to tegn efter punktumet?

Jeg håber det er forståeligt, ellers skrive lige.
Avatar billede Slettet bruger
13. februar 2006 - 11:04 #8
Prøv noget a la:

if(!str.match(/^(([^\.]{1}).+)@(([^\.]{1})(.+)\.)?([a-z0-9]{1})([a-z0-9-]*)([a-z0-9]{1})\.([a-z]{2,8})$/i)) {
  document.write("ugyldig email");
}

- Men der er sikkert eksisterende patterns på nettet rundt omkring, hvor "forfatteren" har brugt noget mere tid på at tænke over det og lave det så perfekt som muligt. Ellers prøv at lege lidt med det, og sig til hvis der skal være andre ting.
Avatar billede roenving Novice
13. februar 2006 - 14:11 #9
-- nu er det jo sådan, at det, der er foran @-tegnet efter den gældende smtp-rfc (2821, http://www.ietf.org/rfc/rfc2821.txt !-) slet ikke må behandles eller valideres af andet end mailserveren på domænet, så egentlig skal man bare sørge for, at der _må_, ikke skal, være noget foran @'et !o]

-- og du har da godt nok lavet den lang, man bør kunne nøjes med:

/^.*@\w(\w-.)*\.[a-z]{2,6}$/

-- den tager så ikke i alle browsere højde for at domæne-navne gerne må indeholde locale-specifkke tegn, mn det er nok ikke et problem endnu (eller de næste mange år !-)
Avatar billede roenving Novice
13. februar 2006 - 14:12 #10
-- selvfølgelig skal ignore-case-moderatoren med:

...6}$/i
Avatar billede d.kryger Praktikant
13. februar 2006 - 14:22 #11
Jeg er ikke helt med! Hvordan kan min linie se ud?
Lige nu ser den sådan ud: if(!document.tilmeldingsform.email_1.value.match(/^(.+)@(.+)$/i))
Avatar billede roenving Novice
13. februar 2006 - 14:33 #12
if(!document.tilmeldingsform.email_1.value.match(/^.*@\w(\w-.)*\.[a-z]{2,6}$/
i))
Avatar billede roenving Novice
13. februar 2006 - 14:34 #13
-- og linjeskiftet skal selvfølgelig ikke være der:

if(!document.tilmeldingsform.email_1.value.match(/^.*@\w(\w-.)*\.[a-z]{2,6}$/i))
Avatar billede Slettet bruger
13. februar 2006 - 14:52 #14
roenving >> Mener du ikke:
/^.*@\w[\w-.]*\.[a-z]{2,6}$/

- Men bortset fra det, så selvom du laver den rettelse, vil den stadig godkende f.eks.:
test@aa.-sd.com
Avatar billede roenving Novice
13. februar 2006 - 15:02 #15
Sæ'føli' ...

-- men pointen er også, at medmindre du slår op i root-erverne kan du ikke validere en mail-adresse uden at du får en bekræftelsesmail fra adressen !-)

-- så formålet er at fjerne de mest tåbelige fejl (f.eks. at folk glemmer punktum eller .dk !-)
Avatar billede Slettet bruger
13. februar 2006 - 20:50 #16
roenving >> Yeps, slet ikke uenig. Og når valideringen foregår clientside er der vel heller ingen tvivl om at det er formålet. Så om du vil nøjes med at kigge efter et @ (hvilket så egentlig er overkill at bruge reg exp til) eller du vil skille lortet ad og validere hver enkelt del, eventuelt med et lookup vha. ajax, så er formålet (og "sikkerheden") den samme.

Og nu kan jeg vist heller ikke tappe mere vand fra den kamel.

d.kryger >> Fik du det hele til at virke?
Avatar billede d.kryger Praktikant
14. februar 2006 - 08:33 #17
Det hele virker, endnu engang tak for hjælpen til Jer begge!
Avatar billede Slettet bruger
14. februar 2006 - 12:32 #18
roenving >> Vil du have halvdelen af pointene?
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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