function parse(str) {
if(!/^(\d){8}$/.test(str)) return "invalid date";
var y = str.substr(0,4),
m = str.substr(4,2),
d = str.substr(6,2);
return new Date(y,m,d);
}
Verbrauch:
parse('20120401');
UPDATE:
als Raketen sagte Monaten sind in js-0 basiert ... verwenden diese Option, wenn Monat nicht 0-basierte in Ihre Zeichenkette
function parse(str) {
if(!/^(\d){8}$/.test(str)) return "invalid date";
var y = str.substr(0,4),
m = str.substr(4,2) - 1,
d = str.substr(6,2);
return new Date(y,m,d);
}
UPDATE:
Präzisere Überprüfung der Gültigkeit des Datums. Angenommen, HBP würde das Datum validieren.
function parse(str) {
var y = str.substr(0,4),
m = str.substr(4,2) - 1,
d = str.substr(6,2);
var D = new Date(y,m,d);
return (D.getFullYear() == y && D.getMonth() == m && D.getDate() == d) ? D : 'invalid date';
}
http: //stackoverflow.com/a/2587398/650884 – Pavel