Hai ragione. Avevo iniziato in un modo poi ho modificato.

L'if con il match deve solo fare il return false se il match non e` verificato. Forse e` meglio metterci una parentesi in piu`:
if(!(match=DateString.match(RE[DateFormat])) return false;