有关如何最好地使用Regex为12位EAN代码添加前导零的任何建议。
EAN代码默认为13位(12 + 1控制),但有些制造商使用12位EAN,这意味着您需要在某些系统中添加前导零。我如何使用正则表达式来做到这一点?
如果代码已有13位数字,则不应进行任何更改。 (顺便说一句,这不是由于缺少控制数字 - 使用计算器将控件添加到12位数导致错误的条形码只是fyi)
谢谢!
答案 0 :(得分:2)
如果你想使用一个正则表达式,只需在每12位(而不是更多)EAN上添加一个前导0。
PHP示例:
$ean = '978294019961';
echo preg_replace('/^\d{12}$/', '0$0', $ean); // 0978294019961
$ean = '0978294019961';
echo preg_replace('/^\d{12}$/', '0$0', $ean); // 0978294019961
答案 1 :(得分:0)
爪哇:
String EAN13 = (EAN.length()==12?"0":"") + EAN;
PHP:
$ean13 = (strlen($ean)==12?"0":"") . $ean;
这不是正在使用正则表达式,如果ean长度为12位,则只需要预先挂起ean,如果ean是12位数。