Also + ohne einen regulären Ausdruck.
Was dann schlampig geschrieben so aussehen könnte :D
var_dump((strlen($inp)==9) && ($inp{4}=="-") && is_numeric($n1=substr($inp,0,4)) && is_numeric($n2=substr($inp,5,9)) && ($n1>=1997) && ($n2<=2010) && ($n2-$n1==1));
Bestimmt gehts eleganter, aber mit einem regulären Ausdruck dürfte das noch übler werden.