From 7788a67a0985377998513b881f8bb0226851e1ba Mon Sep 17 00:00:00 2001 From: Lauren Liberda Date: Sun, 25 Jul 2021 18:07:24 +0200 Subject: [PATCH] EANService: more idiot-proof input validation --- src/items/ean/ean.service.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/items/ean/ean.service.ts b/src/items/ean/ean.service.ts index e0600e9..2bb5b42 100644 --- a/src/items/ean/ean.service.ts +++ b/src/items/ean/ean.service.ts @@ -18,10 +18,14 @@ export class EANService { } isValid(ean: string) { + ean = ean.trim(); + assert(/^\d{13}$/.test(ean)); return this.calcChecksum(ean.slice(0, 12)) === parseInt(ean[12], 10); } toID(ean: string) { + ean = ean.trim(); + assert(/^\d{12,13}$/.test(ean)); if (ean.length === 12) { // it already is an ID return ean; @@ -33,7 +37,8 @@ export class EANService { } fromID(id: string) { - assert(id.length === 12); + id = id.trim(); + assert(/^\d{12}$/.test(id)); return id + this.calcChecksum(id); } }