我需要使用 ASCII 29(组分隔符)扫描条形码到一个HTML输入框中,并将所有的组分隔符替换为|。以下JavaScript函数在我将条码先扫描到Notepad++,然后再将其复制到输入框时可以工作,但当直接将条码扫描到输入框中时就会出现问题。问题出在哪里?var barcode = document.getElementById('barcode').value; barcode = barcode.replace(new RegExp(String.fromCharCode(29), 'g'), '|'); alert(barcode);
在我的Symbol Tech条形码扫描仪上,字符被发送为按键。例如,组分隔符将模拟按住左控制键,然后发送右括号。您的浏览器将处理模拟的按键,就好像您正在尝试使用CTRL+]作为快捷方式一样。您可以使用onkeydown和event.which来捕获此事件,如此处所述:Firefox onkeydown detect pressed key。