Ага, последний пост натолкнул на идею.
function AsChar(e){
var keynum
if(window.event){keynum = e.keyCode} else if(e.which){keynum = e.which}
var reg=/\W/gi;
var c=String.fromCharCode(keynum)
if(reg.test(c)){
return c;
} else {
return '';
}
}
И похоже сработало - не отлаживал, но программа стала действовать как полагается.