me parece extraño, ya que lo he probado en chrome 12 y IE9 y funciona bien, este es el código completo:
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>test</title>
<script type="text/javascript">
function filtro(evt) {
var keyCode = evt.which || evt.keyCode;
keychar = String.fromCharCode(keyCode);
return /^\w$/.test(keychar) || keyCode == 8;
}
</script>
</head>
<body>
<input type="text" onkeypress="return filtro(event)" />
</body>
</html>