---
title: "Datum Validator - Får det inte att funka"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/111527-datum-validator-får-det-inte-att-funka"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "sifix"
published: "2004-09-14T10:33:47.000Z"
updated: "2004-09-14T10:33:47.000Z"
replies: 0
views: 177
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/111527-datum-validator-får-det-inte-att-funka"
---

# Datum Validator - Får det inte att funka

## #1 — sifix, 2004-09-14T10:33Z

Försöker få ihop en datum-validator men får inte ihop det.
Jag lägger ut koden och hoppas på att någon kan hitta felet.

Jag vill ha datumet så här yyyy-mm-dd och det funkar att kolla.
Men när jag sen ska kolla så att inte 
månaden är över 12 ellerunder 1 så blir det fel. 
Värder på månaden blir minus. Den tar med skiljestrecket.

```
<script language="JavaScript">

function formCheck( form ) {
 var objRegExp =/^(\d{4})\-(\d{2})\-(\d{2})$/ 
strValue = window.document.forms[form].elements["dat"].value;

  if(!objRegExp.test(strValue))
{
  	window.alert("Datumformat = yyyy-mm-dd");
    return false; 
}else{
    var arrayDate = strValue.split(RegExp.$1); 
 	var intDay = parseInt(arrayDate[2],10);
	 var intYear = parseInt(arrayDate[0],10);
    var intMonth = parseInt(arrayDate[1],10);

 if(intMonth > 12 || intMonth < 1) {
 	window.alert(intMonth);
  	return false;
 }

    var arrayLookup = { '1' : 31,'3' : 31, '4' : 30,'5' : 31,'6' : 30,'7' : 31,
                        '8' : 31,'9' : 30,'10' : 31,'11' : 30,'12' : 31}

    if(arrayLookup[parseInt(arrayDate[1])] != null) {
      if(intDay <= arrayLookup[parseInt(arrayDate[1])] && intDay != 0)
        return true; 
    }

   if (intMonth-2 ==0) {
 var booLeapYear = (intYear % 4 == 0 && (intYear % 100 != 0 || intYear % 400 == 0));
    if( ((booLeapYear && intDay <= 29) || (!booLeapYear && intDay <=28)) && intDay !=0)
      return true;
  }
  }
  window.alert("Datumformat = yyyy-mm-dd3");
  return false; 

}
</script>

<form action="test.html" method="post" name="o" onSubmit="return formCheck('o');">
<input type="text" name="dat"  value="2004-01-02" ><input type="submit">
</form>
```

Tack på förhand
/SIFIX

Permalänk: https://www.webforum.nu/p/111527

---

Tråden på webben: https://www.webforum.nu/amne/javascript/111527-datum-validator-får-det-inte-att-funka
