Avatar billede cultx Nybegynder
03. oktober 2003 - 14:38 Der er 4 kommentarer og
1 løsning

Valider "dd-mm-ååå tt:mm"

Hej eksperter!

Har en validering af et dato felt, som jeg skal have udvidet til at den istedet for kun "dd-mm-åååå" kan tage "dd-mm-åååå tt:mm", men det er ikke lykkedes mig at validere på at tegn 10 skal være et mellemrum, syntes jeg har prøvet alt...!

Her er min kode:

      function checkDate(myDate){
      var myDate = myDate.replace(/^\s*(.*?)\s*$/, "$1");
      if(myDate != "" && myDate.length != 10 && myDate.length != 16){
            return false
      }
      if(myDate.length == 16){
            if(!(myDate.charAt(10)==" ")){
                  alert("Fejl 10: \""+myDate.charAt(10)+"\"")
                  return false
            }else if(myDate.charAt(13) != ":"){
                  return false
            }
      }
      if(myDate.charAt(2) != "-" || myDate.charAt(5) != "-"){
            return false
      }
      for (i=0; i<myDate.length; i++) {
            if (i!=2 && i!=5 && i!=10 && i!=13) {
                  if (myDate.charAt(i) < "0" || myDate.charAt(i) > "9"){
                        return false
                  }
            }
      }
      return true
      }
Avatar billede di8leva Nybegynder
03. oktober 2003 - 14:52 #1
fra http://www.eksperten.dk/spm/409204

<html>
<script language="JavaScript">
function check(myDate)
{
    var myDate = myDate.replace(/^\s*(.*?)\s*$/, "$1");
    if(myDate != "" && myDate.length != 10 && myDate.length != 16)
    {
        return false
    }
    if(myDate.length == 16)
    {
        if(!(myDate.charAt(10)==" "))
        {
            alert("Fejl 10: \""+myDate.charAt(10)+"\"")
            return false
        }
        else if(myDate.charAt(13) != ":")
        {
            alert("Fejl 13: \""+myDate.charAt(10)+"\"")
            return false
        }
    }
    if(myDate.charAt(2) != "-" || myDate.charAt(5) != "-")
    {
        return false
    }
    for (i=0; i<myDate.length; i++)
    {
        if (i!=2 && i!=5 && i!=10 && i!=13)
        {
            if (myDate.charAt(i) < "0" || myDate.charAt(i) > "9")
            {
                return false
            }
        }
    }
    return true
}
</script>
<input type="text" id="text"><br>
<input type="button" value="Check" onClick="alert(check(document.getElementById('text').value));">


så kan jeg se at det virker (min alert-box siger true hvis indtastningen er korrekt)
er du sikker på at du sender in rætt stræng?

hvordan kalder du funktionen og hvar exakt er fejlen?
Avatar billede squashguy Nybegynder
03. oktober 2003 - 14:56 #2
en anden måde kunne være

str = "12-12-2004 12:11";
arr = str.match(/^([0-9]{2})-([0-9]{2})-([0-9]{4}) ([0-9]{2}):([0-9]{2})$/);

if(arr){
    day = arr[1];
    month = arr[2];
    year = arr[3];
    hours = arr[4];
    minutes = arr[5];
}else{
    alert("fejl");
}
Avatar billede di8leva Nybegynder
03. oktober 2003 - 15:00 #3
squashguy >>

din metode er helt klart bædre
Avatar billede cultx Nybegynder
03. oktober 2003 - 15:02 #4
squashguy >> Kanon løsning!
Smid et svar!
Avatar billede squashguy Nybegynder
03. oktober 2003 - 15:03 #5
okay :)
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