[GastForen Programmierung/Entwicklung JavaScript date-Validierung

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

date-Validierung

troll_13
Beiträge gesamt: 40

1. Feb 2019, 15:58
Beitrag # 1 von 2
Bewertung:
(6696 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen. Kann mir jemand weiterhelfen?
Wie genau muss ich das Datum eingeben, damit es gemäss dieser Validierung durchkommt?
23.03.2012 funktioniert nicht und ich verstehe nicht warum - allerdings ist mir dieser Code auch zu komplex.
Danke für eure Hilfe!

Code
'date': { 
validation: function(value, options) {
var formatRegExp = /^([mdy]+)[\.\-\/\\\s]+([mdy]+)[\.\-\/\\\s]+([mdy]+)$/i;
var valueRegExp = this.dateValidationPattern;
var formatGroups = options.format.match(formatRegExp);
var valueGroups = value.match(valueRegExp);
if (formatGroups !== null && valueGroups !== null) {
var dayIndex = -1;
var monthIndex = -1;
var yearIndex = -1;
for (var i=1; i<formatGroups.length; i++) {
switch (formatGroups[i].toLowerCase()) {
case "dd":
dayIndex = i;
break;
case "mm":
monthIndex = i;
break;
case "yy":
case "yyyy":
yearIndex = i;
break;
}
}
if (dayIndex != -1 && monthIndex != -1 && yearIndex != -1) {
var maxDay = -1;
var theDay = parseInt(valueGroups[dayIndex], 10);
var theMonth = parseInt(valueGroups[monthIndex], 10);
var theYear = parseInt(valueGroups[yearIndex], 10);

// Check month value to be between 1..12
if (theMonth < 1 || theMonth > 12) {
return false;
}

// Calculate the maxDay according to the current month
switch (theMonth) {
case 1: // January
case 3: // March
case 5: // May
case 7: // July
case 8: // August
case 10: // October
case 12: // December
maxDay = 31;
break;
case 4: // April
case 6: // June
case 9: // September
case 11: // November
maxDay = 30;
break;
case 2: // February
if ((parseInt(theYear/4, 10) * 4 == theYear) && (theYear % 100 != 0 || theYear % 400 == 0)) {
maxDay = 29;
} else {
maxDay = 28;
}
break;
}

// Check day value to be between 1..maxDay
if (theDay < 1 || theDay > maxDay) {
return false;
}

// If successfull we'll return the date object
return (new Date(theYear, theMonth - 1, theDay)); //JavaScript requires a month between 0 and 11
}
} else {
return false;
}
}
},

X

date-Validierung

crisies
  
Beiträge gesamt: 138

4. Apr 2019, 20:25
Beitrag # 2 von 2
Beitrag ID: #569644
Bewertung:
(4908 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi

Diese Funktion erwartet als 2ter Parameter einen Schlüssel format und dort müsste man angeben, wie das Datum daher kommt (sprich das eigentliche format ala dd.mm.yyyy etc.)

Der übergebene Datums-String wird dann via this.dateValidationPattern gegengecheckt und dafür sehe ich hier leider keinen Wert.

Ich nehme an dieses Script wurde von irgendwo her kopiert und nun müsste man halt dort mal in der Doku schauen, wie es genau implementiert wird. Dann würde man auch sehen, wie der Regex für das Datum im generellen gesetzt ist...

lg
chris.w.


als Antwort auf: [#568766]