为什么在使用JavaScript处理条形码扫描时,扫描仪会返回额外的代码?

时间:2019-01-21 06:50:46

标签: javascript barcode

当我使用条形码扫描仪扫描条形码时,返回的字符数超出了应有的数量。

我正在尝试使用条形码扫描仪扫描我生成的一些条形码。我需要使用Javascript来捕获我扫描的条形码。
但是,如果我允许扫描程序直接输入到文本框或txt文件中,那很好,但是如果我捕获了扫描程序返回的字符代码,我发现原始代码中混入了一些额外的代码。例如
条形码是E9C2GUEST1
输入文本框时为E9C2GUEST1,
捕获字符并进行传输时,它变为: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;
    });
}

1 个答案:

答案 0 :(得分:0)

似乎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);