需要帮助以在将条形码扫描到 Adob​​e 表单时自动从条形码中删除数据标识符

Posted

技术标签:

【中文标题】需要帮助以在将条形码扫描到 Adob​​e 表单时自动从条形码中删除数据标识符【英文标题】:Need help to automatically remove the data identifiers from barcodes when they are scanned into an Adobe form 【发布时间】:2020-06-24 17:39:31 【问题描述】:

简短版本:我在一家医院工作,正在尝试创建一个更安全、更有效的停机版本,以便我们发送用于输血的血液成分表格。目前,我们在此表格上手写或键入捐赠者识别号 (DIN) 和设备的产品代码,但理想情况下,这些都是扫描的,因为它们是设备上的 ISBT 128 条形码。

扫描 DIN 给我~=W11512003927826 - 我想删除前两个字符(非字母数字),如果可能的话,最后两个。我已经能够通过简单地限制字段的字符输入来完成第二个任务,这是标准的并且应该可以正常工作。

这也适用于产品代码,扫描为~=<E0785V00,不需要前三个字符。

我尝试了一些方法,包括一些应该将字段限制为仅字母数字字符的 javascript,我认为这可能是处理所有这些的最简单方法,但是代码的语法不正确Adobe 或我错误地实现了它。我对JS一点也不熟悉,只是在学习表单创建。

如果有人有任何建议,我将不胜感激。提前致谢!

编辑:到目前为止,我已经尝试了这三个。我将这些用作鼠标退出时的操作(运行 javascript)并尝试模糊。

const alphanumeric = /[a-zA-Z0-9]/g;
const string = "abc-ABC-012";
const result = string.match(alphanumeric).join("");

console.log(result); // abcABC012



const nonalphanumeric = /[_\W]/g;
const string = "abc-ABC-012";
const result = string.replace(nonalphanumeric, "");

console.log(result); // abcABC012




const string = "aa-aa";
const result = string.slice(2, -2);

console.log(string); // aa-aa
console.log(result); // -

【问题讨论】:

请发布您尝试过的javascript。那么我们希望能帮到您。 添加了我在原始帖子中尝试过的三个字符串。 【参考方案1】:

我建议您为每个需要接受扫描数据的字段设置“On Blur”事件处理程序。对于 DIN 字段,使用以下方法调整值:

var field = this.getField("DINField");
field.value = field.value.replace(/^~=(.+)..$/, '$1');

上面的代码假定该字段名为DINField。酌情改变。使用像 RegExp 这样的逻辑来修改值很重要,因为 on-blur 事件可以在每个字段中触发多次。上面的代码只会删除~= app-id 和最后两个字符一次。

同样,对于产品 ID,在“On Blur”处理程序上设置为:

var field = this.getField("ProductField");
field.value = field.value.replace(/^~=<(.+)$/, '$1');

上面的代码假定该字段名为ProductField。此 reg-ex 仅删除 app-id(而不是最后两个字符)。

【讨论】:

以上是关于需要帮助以在将条形码扫描到 Adob​​e 表单时自动从条形码中删除数据标识符的主要内容,如果未能解决你的问题,请参考以下文章

需要帮助让按钮在 Adob​​e Flash 中播放多种声音

扫描条形码并在将其存储在recyclerView中后从JSON中读取它

如何在保存 PDF 表单时阻止 Adob​​e Reader 询问“另存为”(即只允许“保存”)?

以 EPS 格式保存 ggplot 以在 Adob​​e Illustrator 中进行编辑——文本问题

Azure Forms Recognizer 可以扫描条形码、二维码或图像吗

使用数组填充 APEX 表单上的文本字段