[regexp] Hoe moet het wel?

Pagina: 1
Acties:

  • sjroorda
  • Registratie: December 2001
  • Laatst online: 17:52
Het is niet de bedoeling dat dit een lang topic wordt of zo, gewoon even een antwoordje als dat mogelijk is :)

Ik heb een klantcode van de vorm AA123456-BB, dus 2 letters, 6 cijfers, streepje en 2 letters, en ik wil die met Javascript controleren bij een form-submit. Ik zoeken en zoeken en zoeken en hoop regexpen gevonden, maar bij zelf aanpassen werkt het niet! Dus toen maar deze code neergezet:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
      function checkContacthandle(handle)
      {
        letters = new RegExp("^[a-zA-Z]{2}$","");
        cijfers = new RegExp("^[0-9]{6}$","");

        var result = true;
        if (!letters.test(handle.substr(0, 2)))
            result = false;
        if (!cijfers.test(handle.substr(2, 6)))
            result = false;
        if (!(handle.charAt(8) == "-"))
            result = false;
        if (!letters.test(handle.substr(9, 2)))
            result = false;

        return result;
      }


Zoals je ziet: wel regexpen, maar zodra ik er iets van maak als
code:
1
RegExp("/^[a-zA-Z]{2}d{6}\-[a-zA-Z]{2}$/i","");

(ok, misschien streepje fout, maar zonder streepje werkt het ook niet), werkt de regexp niet... Wat doe ik fout? Dacht ik net de regexpen een beetje te begrijpen, krijg je dit :P

  • tomato
  • Registratie: November 1999
  • Niet online
De 'd' betekent op zich niets, plak er een backslash voor en hij staat voor een een 'digit'. Voor het horizontale streepje kan de backslash juist weer weggelaten worden, want buiten een character class heeft deze geen 'speciale' betekenis.

Kijk verder even in javascript documentatie hoe je de regular expression vervolgens toe moet passen.