Ниже приведен код js / jQuery для динамического регулярного выражения генерации только для формата даты, а не для даты и времени (версия разработки еще не полностью протестирована.)
Формат даты должен быть в "D M Y"
например.
ДД-ММ-ГГ,
ДД-ММ-ГГГГ,
ГГГГ-ММ-ДД,
ГГГГ-ДД-ММ,
ММ-ДД-ГГГГ,
ММ-ДД-ГГ,
ДД / ММ / ГГ,
ДД / ММ / ГГГГ,
ГГГГ / ММ / ДД,
ГГГГ / ДД / ММ,
ММ / ДД / ГГГГ,
MM / DD / YY
Или другие форматы, но созданные с [D M Y] символом
var dateFormat = "DD-MM-YYYY";
var order = [];
var position = {"D":dateFormat.search('D'),"M":dateFormat.search('M'),"Y":dateFormat.search('Y')};
var count = {"D":dateFormat.split("D").length - 1,"M":dateFormat.split("M").length - 1,"Y":dateFormat.split("Y").length - 1};
var seprator ='';
for(var i=0; i<dateFormat.length; i++){
if(["Y","M","D"].indexOf(dateFormat.charAt(i))<0){
seprator = dateFormat.charAt(i);
}else{
if(order.indexOf(dateFormat.charAt(i)) <0 ){
order.push(dateFormat.charAt(i));
}
}
}
var regEx = "^";
$(order).each(function(ok,ov){
regEx += '(\d{'+count[ov]+'})'+seprator;
});
regEx = regEx.substr(0,(regEx.length)-1);
regEx +="$";
var re = new RegExp(regEx);
console.log(re);
ПРИМЕЧАНИЕ. Проверка не проводится в течение нескольких месяцев / дней.
например. месяц должен быть в 01-12 или дата должна быть в 01-31