Hola de nuevo.
He modificado el script para que solo cambiando el numero en onKeyPress="return acceptChar(event,2, this)" puedas coger segun las necesidades del campo, asi puede valer para validar distintos campos en un formulario, tambien puede introducir nuevas expresiones regulares en el array si necesitas alguna comprobacion distinta, si no sabes como funciona las expresiones regulares hay manuales en la red que te pueden ayudar. Merece la pena echarle un vistazo aunque sea un poco chaposo.
Un saludo
<html>
<head>
<script language="JavaScript">
<!--
var mask_string = new Array()
function property_mask(msk, msg){
this.msk = msk
this.msg = msg
}
function populate_array(){
mask_string[0] = new property_mask( /[^\d]/i, "Puede intruducir cualquier caracter menos los números.")
mask_string[1] = new property_mask(/[\d\s]/, "Solo se puede intruducir números y espacios.")
mask_string[2] = new property_mask( /\d/, "Solo se puede introducir números,\n no se permite espacios.")
mask_string[3] = new property_mask(/[A-Zñ\d]/i,"Solo se puede introducir letras y números,\n no se permiten espacios.")
}
populate_array()
var nav4plus = window.Event ? true : false;
function acceptChar(evt,nba,obj){
var key = nav4plus ? evt.which : evt.keyCode;
if(key == 8) { return true}
if(mask_string[nba].msk.test(String.fromCharCode(key))){ return true}
else{ alert(mask_string[nba].msg);obj.focus(); return false}
}
//-->
</script>
</head>
<body>
<!--el numero de argumento corresponde al array mask_string -->
<p><input type="text" name="valor" size="12" maxlength="12"
onKeyPress="return acceptChar(event,2, this)"></p>
</body>
</html>