Нужна помощь для автоматического удаления идентификаторов данных из штрих-кодов при их сканировании в форму Adobe - PullRequest
0 голосов
/ 12 марта 2020

Краткая версия: я работаю в больнице и пытаюсь создать более безопасную и эффективную версию бланков, которые мы отправляем вместе с компонентами крови для переливания. В настоящее время мы пишем от руки или вводим идентификационный номер донора (DIN) и код продукта устройства в эту форму, но в идеале они сканируются, так как они являются штрих-кодами ISBT 128 на устройстве.

Сканирование DIN дает мне ~=W11512003927826 - Я хотел бы удалить первые два символа (не alphanumeri c) и, если возможно, последние два. Я смог выполнить sh вторую задачу, просто ограничив ввод символов в поле, которое является стандартным и должно работать нормально.

Это также относится к коду продукта, который сканируется как * 1006. * и не нуждается в первых трех символах.

Я пробовал несколько методов, включая некоторые Javascript, которые должны были ограничить поле только alphanumeri c символами, которые, я полагаю, являются, вероятно, самыми простыми способ справиться со всем этим, но либо код был не в правильном синтаксисе для 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); // -

1 Ответ

0 голосов
/ 12 марта 2020

Я рекомендую вам настроить обработчики событий «Размытие» для каждого поля, которое должно принимать отсканированные данные. Для поля DIN отрегулируйте значение с помощью:

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

Приведенный выше код предполагает, что поле имеет имя DINField. Измените при необходимости. Для изменения значения важно использовать logi c, например, RegExp, поскольку событие on-blur может вызываться несколько раз для каждого поля. Приведенный выше код удаляет идентификатор приложения ~= и последние два символа только один раз.

Аналогично для идентификатора продукта в обработчике «Размытие» задается значение:

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

Код выше предполагает, что поле называется ProductField. Этот reg-ex удаляет только идентификатор приложения (а не последние два символа).

...