JSFiddle - React, Tailwind, and code Playground
HTML
<input id="test" placeholder="Enter Date String..." style="width:300px;"/><input type="button" id="testButton" value="Test"/>
<br/><br/>
<div id="results">
Results:<br/>
</div>
CSS
body{
font-family:Arial, Helvetica, sans-serif;
}
JavaScript
$('#testButton').click(function(){
$('#results').get(0).innerHTML = 'Results:<br/>';
var testValue = $('#test').val();
var testValueArr = testValue.split('/');
var itemStr, itemDate;
re = /^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24\:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/
for(var i=0;i<testValueArr.length;i++){
itemStr = testValueArr[i];
//itemDate = new Date(itemStr);
if(re.test(itemStr)){
itemDate = new Date(itemStr);
$('#results').get(0).innerHTML += 'Item '+i+' IS a valid ISO8601 date (' + itemStr + ') ('+itemDate+')<br/>';
} else {
itemDate = new Date(itemStr);
$('#results').get(0).innerHTML += 'Item '+i+' is NOT a valid ISO8601 date (' + itemStr + ') ('+itemDate+')<br/>';
}
}
});