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>');
});