为什么在使用 javascript 处理条码扫描时扫描器 return 额外的代码?
Why scanner return extra code when using javascript to handle barcode scanning?
当我用条码扫描仪扫描条码时,返回的字符码比应有的多。
我正在尝试使用条码扫描仪扫描我生成的一些条码。我需要使用 Javascript 来捕获我扫描的条形码。
但是,如果我让扫描仪直接输入文本框或txt文件,那还好,但如果我捕捉到扫描仪返回的字符码,我发现原来的字符中混入了一些额外的代码。例如
条码编码为E9C2GUEST1
文本框输入时为E9C2GUEST1,
捕获charcode并传输时,它变成:069E0579067C0502071G085U069E083S084T0491
正如我们所看到的,有一些代码,如“069”、“057”、“067”、“050”、“071”、“085”、“069”、“083”、“084”和“049”与原码混合。
有没有人知道他们是什么?有什么办法可以去除它们吗?
function ConfigCodeScanning() {
var lastTime = null, currentTime = null;
var lastCode = null, currentCode = null;
$(document).keypress(function (e) {
currentCode = e.charCode;
currentTime = new Date().getTime();
if (currentTime - lastTime <= 30 || lastTime == null) {
//DO scanner input
$("#participantBarcode").val($("#participantBarcode").val() + String.fromCharCode(currentCode));
} else {
//DO nothing
}
lastCode = currentCode;
lastTime = currentTime;
});
}
好像067
这样的数字在C
这样的值之前指向ASCII table中的十进制值。
对于您的示例数据,如果您可以匹配一个零后跟 2 位数字并将其替换为空字符串。
0\d{2}
const regex = /0\d{2}/g;
const str = `069E0579067C0502071G085U069E083S084T0491`;
const result = str.replace(regex, '');
console.log(result);
当我用条码扫描仪扫描条码时,返回的字符码比应有的多。
我正在尝试使用条码扫描仪扫描我生成的一些条码。我需要使用 Javascript 来捕获我扫描的条形码。
但是,如果我让扫描仪直接输入文本框或txt文件,那还好,但如果我捕捉到扫描仪返回的字符码,我发现原来的字符中混入了一些额外的代码。例如
条码编码为E9C2GUEST1
文本框输入时为E9C2GUEST1,
捕获charcode并传输时,它变成:069E0579067C0502071G085U069E083S084T0491
正如我们所看到的,有一些代码,如“069”、“057”、“067”、“050”、“071”、“085”、“069”、“083”、“084”和“049”与原码混合。
有没有人知道他们是什么?有什么办法可以去除它们吗?
function ConfigCodeScanning() {
var lastTime = null, currentTime = null;
var lastCode = null, currentCode = null;
$(document).keypress(function (e) {
currentCode = e.charCode;
currentTime = new Date().getTime();
if (currentTime - lastTime <= 30 || lastTime == null) {
//DO scanner input
$("#participantBarcode").val($("#participantBarcode").val() + String.fromCharCode(currentCode));
} else {
//DO nothing
}
lastCode = currentCode;
lastTime = currentTime;
});
}
好像067
这样的数字在C
这样的值之前指向ASCII table中的十进制值。
对于您的示例数据,如果您可以匹配一个零后跟 2 位数字并将其替换为空字符串。
0\d{2}
const regex = /0\d{2}/g;
const str = `069E0579067C0502071G085U069E083S084T0491`;
const result = str.replace(regex, '');
console.log(result);