Avatar billede horizon Nybegynder
04. juni 2007 - 11:52 Der er 9 kommentarer og
1 løsning

Validering af et felt bl.a. via RegExp

Jeg arbejder med en side hvor der bl.a. skal ske noget form validering af feltet "brugernavn" som der er nogle helt specielle krav til hvordan må se ud

input feltet "Brugernavn" skal overholde følgende:
-bestå af tegnene A-z0-9æøåÆØÅ
-må indeholde tegnene _ og - (max 1 af hvert)
-må indeholde max et enkelt mellemrum (dog ikke først eller sidst)

det jeg kom frem til var flg.

function vBrugernavn(){

if(document.getElementById('Brugernavn').value.match(/[A-z0-9æøåÆØÅ]/)){
  return true;

}else{
  return false;

}

}

nu er kun første punkt ordnet, men selvom man blander forskellige tegn ind mellem bogstaverne og tallene, så gennemføres valideringen som true stadig

først. Hvordan får jeg den til KUN at acceptere hvis mine krav overholdes

andet. Hvordan får jeg den til at se efter om der er max et af hvert af de tre tegn (_,-,whitespace)

tredje. Hvordan får jeg den til at kontrollere at strengen ikke starter eller slutter med et mellemrum? evt ved at bruge /^[A-z0-9æøåÆØÅ]$/  ?
Avatar billede fennec Nybegynder
04. juni 2007 - 12:04 #1
Prøv med denne:
if(document.getElementById('Brugernavn').value.match(/^[A-Za-z0-9æøåÆØÅ]+[ _-]{0,1}[A-Za-z0-9æøåÆØÅ]+$/)){
Avatar billede horizon Nybegynder
04. juni 2007 - 12:17 #2
jeg takker :D smid et svar
Avatar billede horizon Nybegynder
04. juni 2007 - 12:18 #3
Hov! den accepterer at man bruger _ og - flere gange fik jeg lige set
Avatar billede horizon Nybegynder
04. juni 2007 - 12:18 #4
og den accepterer ikke hvis man har både et mellemrum, et _ og et -
Avatar billede fennec Nybegynder
04. juni 2007 - 13:01 #5
Den kan jeg ikke klare. Har prøvet flere gange, men det overgår min forstand. Det er i hvertfald ikke lige til.

Bare det at lave en som acceptere:
abc_def
a-bc_def
abc_de-f

en ikke
a-bc_de-f

Er mere end jeg kan klare. Jeg vil helt klart anbefale at flytte ?'et til RegExp kategorien i stedet...
Avatar billede roenving Novice
04. juni 2007 - 15:12 #6
-- og som nævnt derovre, tror jeg ikke, at det kan lade sig gøre, men du kan vel bare lave en sammensat forespørgsel:

var b = frm.brugernavn.value;
if( !b.match(/^\b[\wæøå -]+\b$/i) || b.match(/ /).length>1 || b.match(/-/).length>1 || b.match(/_/).length>1 ){
  alert("Dit brugernavn er ikke validt.\nDet må indeholde almindelige bogstaver og tal,\nsamt max. et -, _ eller mellemrum, mellemrummet dog ikke først eller sidst !-)");
}
Avatar billede horizon Nybegynder
05. juni 2007 - 20:52 #7
det var det jeg tænkte, at lave en javascript funktion der gjorde det så :-)
Avatar billede horizon Nybegynder
09. oktober 2008 - 22:16 #8
lukker og slukker.

smid et svar som tak for jeres tid dengang.
Avatar billede roenving Novice
10. oktober 2008 - 08:25 #9
Oki '-)
Avatar billede roenving Novice
10. oktober 2008 - 15:51 #10
-- og tak for point ;~}
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