JSFiddle - React, Tailwind, and code Playground

by Hilarius Doren

HTML

<div id="log"></div>

JavaScript

var tests = [
    "bla bla",      // false
    "14/09/2011",   //         true
    "09/14/2011",   // false
    "14/9/2011",    // false
    "1/09/2011",    // false
    "14/09/11",     // false
    "14.09.2011",   // false
    "14/00/2011",   // false
    "29/02/2011",   // false
    "14/09/9999",   //         true
];

function testDate(str){
    var t = str.match(/^(\d{2})\/(\d{2})\/(\d{4})$/);
    if(t===null) return false;
    var d=parseInt(t[1]), m=parseInt(t[2],10), y=parseInt(t[3],10);
    //below should be more acurate algorithm
    if(m>=1 && m<=12 && d>=1 && d<=31){
            return true;   
    }
    return false;
}

$.each(tests, function(i,e){
    $('#log').append('<p>' + e + ' --> ' + testDate(e) + '</p>');
});