我正在尝试使用正则表达式来限制输入字段中只能输入字母、'-'和退格键。我需要能够使用左右箭头键和删除键。我试图使用以下代码实现:
$("#input").keypress(function (e) {
var regex = new RegExp("^[a-zA-Z-\b]+$");
var key = String.fromCharCode(!e.charCode ? e.which : e.charCode);
if((!(e.keyCode == 37 || e.keyCode == 39 || e.keyCode == 46))){
if(!regex.test(key)){
return false;
}
}
});
我需要检查按键是否为左箭头(37)、右箭头(39)或删除键(46),如果不是,则检查按键是否在正则表达式中。
这在IE和Chrome上运行良好,但在Firefox上,按键代码37和39也对应于分别为'和%。
按键代码适用于所有浏览器,问题在于[仅适用于Firefox],如果允许箭头和删除键,则还会允许使用'和%字符。