Date Fix Regex

by 2Yootz

HTML

<div id="output"></div>

JavaScript

var arr = [
    "Oct 06, 03:35 PM",
    "Oct 6, 03:35 PM",
    "Oct 6, 3:35 PM",
    "Oct6, 03:35 PM",
    "Oct 06, 03:35PM",
    "Oct 06, 3pm",
    "Oct 06, 3 PM",
    "Oct 6 , 3:35  PM",
    "Oct  06 03:35 PM",
    "Oc",
    "oct 6",
    "oct 06 10",
    "oct 6, 9",
    "nov 19 5:32",
    "chadillacman 99",
    "May i kiss you?", ""];
//var arr = ["Oct 06, 03:35 PM"];

for (var i in arr) {
    $("#output").append('<div>' + fix(arr[i]) + '</div>');
}






function fix(val) {

    val = val.replace(/^([JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC]{1,3})(\s+)?([0-9]{1,2})?(\s*)(,*)(\s*)([0-9]{1,2})?(:*)([0-9]{1,2})?(\s*)([AM|PM]{2})?/ig,

    function (match, month, space1, day, space2, comma, space3, hour, colon, minute, space4, ampm) {
        var result = '';
        if (month != null) {
            result += month.toUpperCase();
        }
        if (day != null) {
            result += ' ' + (day.length == 2 ? day : '0' + day);
        }
        if (hour != null) {
            result += ', ' + (hour.length == 2 ? hour : '0' + hour);
        }
        if (minute != null) {
            result += ':' + (minute.length == 2 ? minute : '0' + minute)
        } else {
            if ((hour != null) && (ampm != null)) {
                result += ':00';
            }
        }
        if (ampm != null) {
            result += ' ' + ampm.toUpperCase();
        }


        return result;
    });

    return val;
}