Avatar billede dugi Nybegynder
22. december 2006 - 21:01 Der er 12 kommentarer

Hjælp til regular expression

Hej alle,

Jeg skal have lavet noget validerings noget på min oprettelses form. Ens brugernavn må kun indeholde A-Å og 0-9, dette har jeg prøvet at tjekke med regex, men kan ikke rigtig få det til at virke :/

Nogle som kan hjælpe?

Min kode er:

if (!(document.getElementById('user').value.length >= 3 && document.getElementById('user').value.length <= 23)){
        errormsg += 'Brugernavn må kun være mellem 3 og 23 bogstaver\n';
        error = 1;
    } else if (!(document.getElementById('user').value.match('|^[a-åA-Å0-9]+$|'))) {
        errormsg += 'Brugernavn indeholder ugyldige tegn!\n';
        error = 1;
    }


På forhånd tak :)
- Morten
Avatar billede erikjacobsen Ekspert
22. december 2006 - 21:18 #1
Kan du blive inspireret af:

  var good="ashdkajæøå098kæp";
  if (good.match(/^[a-zæøåÆØÅ0-9]+$/i))  {  alert(good);  }

  var bad="asæl-asd  +=987u..,,__";
  if (bad.match(/^[a-zæøåÆØÅ0-9]+$/i))  {  alert(bad);  }
Avatar billede dugi Nybegynder
22. december 2006 - 21:27 #2
nej egentlig ikke :/
Er helt rundt på gulvet af det du skriver :(

JavaScript er LANGT fra min stærke side.
Avatar billede erikjacobsen Ekspert
22. december 2006 - 21:28 #3
Du skal bare bruge:  match(/^[a-zæøåÆØÅ0-9]+$/i)
i stedet for det du selv fandt på
Avatar billede dugi Nybegynder
22. december 2006 - 21:32 #4
Det virker ikke :/
Den godkender både med og uden ulovlige tegn.

Min kode er nu:

if (!(document.getElementById('user').value.length >= 3 && document.getElementById('user').value.length <= 23)){
        errormsg += 'Brugernavn må kun være mellem 3 og 23 bogstaver\n';
        error = 1;
    } else if (!(document.getElementById('user').value.match('/^[a-zæøåÆØÅ0-9]+$/i')))) {
        errormsg += 'Brugernavn indeholder ugyldige tegn!\n';
        error = 1;
    }
Avatar billede erikjacobsen Ekspert
22. december 2006 - 21:36 #5
Prøv at skrive det jeg foreslår.
Avatar billede dugi Nybegynder
22. december 2006 - 21:40 #6
Det virker heller ikke :(
Avatar billede erikjacobsen Ekspert
22. december 2006 - 21:42 #7
Jo, det virker. Må jeg se hvad du skriver?
Avatar billede dugi Nybegynder
22. december 2006 - 21:44 #8
function form_validate_create() {
    var bad="asæl-asd  +=987u..,,__";
      if (bad.match('/^[a-zæøåÆØÅ0-9]+$/i'))  {  alert(bad);  }


----------------------------------
den går bare direkte forbi koden uden at lave en alert :/
Avatar billede erikjacobsen Ekspert
22. december 2006 - 21:48 #9
Men du skal jo skrive det jeg be'r dig om - ikke hvad du selv finder på. Jeg kan ikke se nogetsted, at jeg har bedt dig sætte '....' omkring.
Avatar billede dugi Nybegynder
22. december 2006 - 21:48 #10
den siger syntax fejl hvis jeg ikke gør det :s
Avatar billede erikjacobsen Ekspert
22. december 2006 - 21:49 #11
Nej, den gør ikke. Hvad skriver du som giver syntaksfejl?
Avatar billede roenving Novice
24. december 2006 - 13:11 #12
F.eks.

if (!document.getElementById('user').value.match(/^[a-zæøåÆØÅ0-9]{3,23}$/i)) {
        errormsg += 'Brugernavn indeholder ugyldige tegn eller er kortere end 3 eller længere end 23 tegn!\n';
        error = 1;
    }

-- en regexp skal ikke placeres inde i gåseøjne eller apostroffer i javascript ...

-- og så var der en parantes-slut i overskud !-)
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