Listo ya lo resolvi, Solo tenia que cambiar el onKeyDown por onKeyPress, ya que noce porque en onKeyDown el codigo de los numeros del teclado de arriba son diferentes a los numeros del keypad. si quieren prueben presionando el nro 1 en la parte de arriba del teclado y luego el 1 en el keypad para que vean que les da una codificacion diferente en onKeyDown pruebenlo aqui http://asquare.net/javascript/tests/KeyCode.html.
en el codigo que publique arriba cambien onKeyDown por onKeyPress y veran que NO ACEPTA LOS NUMEROS DEL KEYPAD en cambio como estaba con onKeyDown SI ME ACEPTABA LOS NUMEROS DEL KEYPAD.
en solucion quedaria asi:
Código Javascript
:
Ver original<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>validar</title>
</head>
<body>
<script>
function validar(e){
var exp=/[a-zA-ZñÑ\s]/;
return exp.test(String.fromCharCode(e.which));
}
</script>
<input type="text" id="campo_de_prueba2" name="textfield" onKeyPress="return validar(event)" />
</body>
</html>
Gracias de todas maneras emprear.