我用 jQuery 创建了一个用于输入掩码的函数:
$.fn.mask = function(regex) {
this.on("keydown keyup", function(e) {
if (regex.test(String.fromCharCode(e.which))) {
return false;
}
});
}
它根据您传递的正则表达式拒绝任何输入。例子:
$("#textfield").mask(/\s/); // denies white spaces
$("#textfield").mask(/\D/); // denies anything but numbers
上面的那些例子有效,但我正在尝试使用正则表达式来接受带小数点分隔符的数字,如下所示:
$("#textfield").mask(/[^\d.,]/); // Anything except digits, dot and comma
那是行不通的。String.fromCharCode(e.which)
但是,如果我在按下时登录控制台,.
或者,
它向我显示这些(相应的)字符:¾
和¼
.
问题是为什么String.fromCharCode(e.which)
代表那些字符而不是按下的字符?