L'idea di Dennis e` corretta, ma la RE ha qualche problema. In particolare il punto deve essere preceduto da backslash, altrimenti significa "qualsiasi carattere".
Se poi ci metti ^ all'inizio e $ alla fine, non serve fare il test sulla lunghezza.

function testa(){
campo=document.form1.primo.value
re=new RegExp("^[0-2][0-9]\.[0-5][0-9]$");
if(re.test(campo))alert('ok');
else alert('non va bene');
}

Altre possibili RE:
^([0-1][0-9]|2[0-3])\.[0-5][0-9]$

^([0-1][0-9]|2[0-3])[\.\: ][0-5][0-9]$

Ciao
Michele