StackOverflow Date parse

Return date from validated string of form YYYYMMDD

by Hans PUFAL

HTML

<a href="http://stackoverflow.com/questions/10638529/how-to-parse-a-date-in-format-yyyymmdd-in-javascript#10638617">How to parse a date in format “YYYYmmdd” in JavaScript?</a><br/>

JavaScript

function parse (str) {
        // validate year as 4 digits, month as 01-12, and day as 01-31 
        if ((str = str.match (/^(\d{4})(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])$/))) {
           // make a date
           str[0] = new Date (+str[1], +str[2] - 1, +str[3]);
           // check if month stayed the same (ie that day number is valid)
           if (str[0].getMonth () === +str[2] - 1)
              return str[0];
        }
        return undefined;
 }

 document.write (parse('20120517'));