Toon posts:

[Javascript] reguliere expressies

Pagina: 1
Acties:

Verwijderd

Topicstarter
Om te checken of een datum goed ingevoerd is maak ik gebruik van een reguliere expressie.

Het gaat mij hier alleen om de vorm, dus niet het daadwerkelijk kloppen van de datum. De datum moet van de vorm xx-xx-xxxx zijn. Maar kan ook x-xx-xxxx, xx-x-xxxx, xx-xx-xx, x-xx-xx of xx-x-xx zijn.

De code die ik gebruik om te testen is als volgt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<HTML>
  <HEAD>
    <TITLE>Test</TITLE>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
      datumreg = /\d\d?-\d\d?-\d{2}\d{2}?/;

      function testDate() {
        OK = datumreg.exec();
        if (!OK)
        alert("date not ok!");
        else
        alert("date ok!");
      }
    -->
    </SCRIPT>
  </HEAD>
  <BODY BGCOLOR="#FFFFFF">
    <INPUT SIZE="30" ONCHANGE="javascript:testDate(this)">
  </BODY>
</HTML>

Wanneer ik dit uitvoer krijg ik bij een datum van een vorm die aan de reguliere expressie voldoet steeds de melding 'date not ok!'. Bij een datum die niet aan de expressie voldoet krijg ik dezelfde melding.

Klopt mijn reguliere expressie dan niet :?

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 23:47

Pelle

🚴‍♂️

Je functie doet niks met het argument dat hij meekrijgt.

Verwijderd

Topicstarter
Op dinsdag 23 april 2002 00:52 schreef Pelle het volgende:
Je functie doet niks met het argument dat hij meekrijgt.
Haha, doh :o

Gooi maar weer op slot! (dan ga ik slapen, morgen weer fris verder :z)

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Op dinsdag 23 april 2002 00:49 schreef cruesli het volgende:
Klopt mijn reguliere expressie dan niet :?
nee, en bovendien (zoals Pelle al opmerkte) klopt de rest van je functie ook niet helemaal ;)

dit zou beter moeten werken:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<html>
<head>
<title>datum regexpje</title>
<script type="text/javascript">
function testDate(sDatum)
{
    if (/^\d{1,2}-\d{1,2}-(\d{2}|\d{4})$/.test(sDatum)) {
        alert("date ok!");
    } else {
        alert("date not ok!");
    }
}
</script>
</head>
<body>
<form><input onchange="testDate(this.value)" /></form>
</body>
</html>

Today's subliminal thought is:


  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 23:47

Pelle

🚴‍♂️

Op dinsdag 23 april 2002 01:05 schreef cruesli het volgende:
Gooi maar weer op slot! (dan ga ik slapen, morgen weer fris verder :z)
Post als je morgen fris en wel weer nagedacht hebt, hier je oplossing maar, dat lijkt me een stuk zinvoller dan er meteen een slot aan te hangen. Overigens doet Annie al een flinke duit in het zakje :)

Verwijderd

Topicstarter
Op dinsdag 23 april 2002 01:14 schreef Pelle het volgende:

[..]

Post als je morgen fris en wel weer nagedacht hebt, hier je oplossing maar, dat lijkt me een stuk zinvoller dan er meteen een slot aan te hangen. Overigens doet Annie al een flinke duit in het zakje :)
Tis dan wel nog niet morgen, maar toch nog maar eventjes de oplossing dan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<HTML>
  <HEAD>
    <TITLE>Test</TITLE>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
      datumreg = /^\d{1,2}-\d{1,2}-(\d{2}|\d{4})$/;

      function test(text) {
        if (text.match(datumreg))
        alert("date ok!");
        else
        alert("date not ok!");
      }
    -->
    </SCRIPT>
  </HEAD>
  <BODY BGCOLOR="#FFFFFF">
    <INPUT SIZE="30" ONCHANGE="javascript:test(this.value)">
  </BODY>
</HTML>

Met dank aan Pelle en Annie voor de geestelijke bijstand middernacht na een hele dag programmeeeeerrrrrreeeennnzzzzz :z :z :z
Pagina: 1