21 lines
466 B
Python
21 lines
466 B
Python
![]() |
import re
|
||
|
|
||
|
|
||
|
def upc_to_gtin_13(upc: str):
|
||
|
"""
|
||
|
Convert UPC-A to GTIN-13, return None if validation failed
|
||
|
|
||
|
may add or remove padding 0s from different source
|
||
|
"""
|
||
|
s = upc.strip() if upc else ""
|
||
|
if not re.match(r"^\d+$", s):
|
||
|
return None
|
||
|
if len(s) < 13:
|
||
|
s = s.zfill(13)
|
||
|
elif len(s) > 13:
|
||
|
if re.match(r"^0+$", s[0 : len(s) - 13]):
|
||
|
s = s[len(s) - 13 :]
|
||
|
else:
|
||
|
return None
|
||
|
return s
|