gpt4 book ai didi

javascript - jQuery:监听来自键盘的自动扫描仪输入?

转载 作者:数据小太阳 更新时间:2023-10-29 05:06:39 24 4
gpt4 key购买 nike

我正在为附有条形码扫描仪的图书馆系统编写网络应用程序。扫描器的输入表现为键盘输入,格式总是~~[\d]+.[\d]+~~,例如~~470.002~~.

我想为扫描器输入设置一个 jQuery 监听器,我是一个 jQuery 新手。它应该监听所有键盘输入,但仅在听到来自扫描仪的输入时执行操作,并且仅在扫描仪输入完成时执行。

这是我所知道的(即不是很多):

//Global functions: call on all pages.
$(document).ready(function() {
// Listen for scanner input.
$(window).keypress(function(e) {
var key = e.which;
if (key==126) {.
alert('tilde');
// How to listen for the correct input?
// check_out_book();
}
});
});

以我需要的格式保持收听输入的最佳方式是什么?我希望它在调用 check_out_book() 之前收听最后两个波浪号。

如果有停顿,我还希望它在第一个波浪号之后“停止”收听 - 以区分人工打字员和自动扫描仪输入。 jQuery 有办法做到这一点吗?

非常感谢任何指点!谢谢你。

最佳答案

我认为您希望通过存储到目前为止收到的内容并检查其是否有效来实现此目的。如果不是,请丢弃您收到的内容并重新开始:

$(document).ready(function(){
var input = '',
r1 = /^~{1,2}$/,
r2 = /^~{2}\d+$/,
r3 = /^~{2}\d+\.$/,
r4 = /^~{2}\d+\.\d+$/,
r5 = /^~{2}\d+\.\d+~{1}$/
r6 = /^~{2}\d+\.\d+~{2}$/;

$(window).keypress(function(e) {
input += String.fromCharCode(e.which);

if (r1.test(input) || r2.test(input) || r3.test(input) || r4.test(input) || r5.test(input)) {
// input is valid so far, continue
} else if (r6.test(input) {
// input is valid and complete
check_out_book();
} else {
// input is invalid, start over
input = '';
}
});
});

您可以将所有这些正则表达式组合成两个,但我认为这样更易读。

关于javascript - jQuery:监听来自键盘的自动扫描仪输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4621299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com