Shouldn't the IsoDate validation be a bit more explicit? Something like: ^(\d{4})\D?(0[1-9]|1[0-2])\D?([12]\d|0[1-9]|3[01])$
The current RegEx allows nonsensical dates like '2008-45-79'.