<input type="text" onblur="if(!/^\d+((\.|,)\d{0,3})?$/.test(this.value)){alert('errore')}" />
oppure
<input type="text" onblur="if(!this.value.match(/^\d+((\.|,)\d{0,3})?$/)){alert('errore')}" />

ci sono differenze ma non dovresti notarle nel caso specifico

ciao