quello che non ti convince e' controllare il numero di cifre che compone la parte numerica?
regexp

per il resto se ripetessi l' operazione una caterva di volte varrebbe la pena di confrontare la rapidita' delle alternative, ma cosi' non sembra serva