需要帮助以在将条形码扫描到 Adobe 表单时自动从条形码中删除数据标识符
Posted
技术标签:
【中文标题】需要帮助以在将条形码扫描到 Adobe 表单时自动从条形码中删除数据标识符【英文标题】: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(而不是最后两个字符)。
【讨论】:
以上是关于需要帮助以在将条形码扫描到 Adobe 表单时自动从条形码中删除数据标识符的主要内容,如果未能解决你的问题,请参考以下文章
需要帮助让按钮在 Adobe Flash 中播放多种声音
扫描条形码并在将其存储在recyclerView中后从JSON中读取它
如何在保存 PDF 表单时阻止 Adobe Reader 询问“另存为”(即只允许“保存”)?
以 EPS 格式保存 ggplot 以在 Adobe Illustrator 中进行编辑——文本问题