Avatar billede krogstrup Nybegynder
19. marts 2004 - 20:38 Der er 14 kommentarer og
1 løsning

Simpel validering af value via regExpression

Hvorledes validerer jeg indholdet af value i et INPUT felt udfra en regular expression. Indholdet skal min. udgøre mindst een karakter. Tilladte tegn er følgende:

a-z (altså ikke æ,ø,å)
A-Z
0-9
- (bindestreg)
_ (underscore)


/David
Avatar billede roenving Novice
19. marts 2004 - 20:45 #1
reg = /[\w\-]+/i;

if(!document.FORMNAVN.FELTNAVN.value.match(reg)){
  //forkert
  return false;
}else{
  //accepteret
  return true;
}
Avatar billede roenving Novice
19. marts 2004 - 20:47 #2
-- og hvis du vil være helt sikker på, at brugerens locale ikke kommer til at medtage tegn, du ikke kan acceptere (f.eks. æøå eller èüê) kan du:

reg = /[a-z0-9_\-]+/i;
Avatar billede krogstrup Nybegynder
19. marts 2004 - 20:49 #3
kan man lave den expression så den også accepterer at feltet er blankt ?
Avatar billede krogstrup Nybegynder
19. marts 2004 - 20:49 #4
men hvis feltet indeholder tegn skal disse selvfølgelig overholde ovenstående spec !
Avatar billede roenving Novice
19. marts 2004 - 20:55 #5
Så ændrer du bare + til *

+ betyder en eller flere

* betyder ingen eller flere !-)
Avatar billede krogstrup Nybegynder
19. marts 2004 - 21:02 #6
hmmm - med denne

reg = /[\w\-]*/i;

accepterer den godt nok at feltet er tomt, men den accepterer f.eks. også tegnet æ ?!?
Avatar billede roenving Novice
19. marts 2004 - 21:05 #7
Derfor min kommentar 20:47:20 !-)
Avatar billede krogstrup Nybegynder
19. marts 2004 - 21:08 #8
sorry - jeg havde pastet forkert ind. Jeg bruger faktisk denne:

reg = /[a-z0-9_\-]*/i;

men får alligevel lov til at indtaste "æ" ?!?
Avatar billede krogstrup Nybegynder
19. marts 2004 - 21:08 #9
function editPageSettings (frm) {

varAlert = ""
send = true
reg = /[a-z0-9_\-]*/i;

    if (frm.pages_title.value == "") {
        varAlert = varAlert + "- Sidenavn\n";
        send = false;
    }
   
    if(!frm.pages_url_pagename.value.match(reg)){
        varAlert = varAlert + "- URL sidenavn må ikke indeholde æ,ø,å eller mellemrum\n";
        send = false;
    }
   
    if (send == false) {
        alert("Følgende felter skal udfyldes:\n\n" + varAlert);
        return false;
    }
    else {
        return true;
    }

}
Avatar billede roenving Novice
19. marts 2004 - 21:09 #10
Hov, jeg havde da også glemt ^$ for at sige, at der kun måtte være de tegn:

var reg = /^[a-z0-9_\-]*$/i
Avatar billede roenving Novice
19. marts 2004 - 21:12 #11
-- og lidt andet optimering:

var varAlert = "",send = true;
var reg = /^[a-z0-9_\-]*$/i;

    if (frm.pages_title.value == "") {
        varAlert += "- Sidenavn\n";
        send = false;
    }
   
    if(!frm.pages_url_pagename.value.match(reg)){
        varAlert += "- URL sidenavn må ikke indeholde æ,ø,å eller mellemrum\n";
        send = false;
    }
   
    if (!send) {
        alert("Følgende felter skal udfyldes:\n\n" + varAlert);
        return false;
    }
    else {
        return true;
    }

}
Avatar billede krogstrup Nybegynder
19. marts 2004 - 21:16 #12
Tusind tak for hjælpen - jeg glæder mig til den dag jeg selv mestrer regular expressions :-)

smider du et svar ?
Avatar billede roenving Novice
19. marts 2004 - 21:18 #13
Velbekomme '-)

-- og giv dig straks igang med det, for der er godt nok nogle ting, som bliver lettere at udføre, når de er en option !-)
Avatar billede krogstrup Nybegynder
19. marts 2004 - 21:19 #14
ja, jeg ved det - det er bare lige det med at finde tiden til det....

God weekend :-)
Avatar billede roenving Novice
19. marts 2004 - 21:21 #15
I lige måde -- og tak for points ;~}
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