關於如何最佳使用正則表達式將前導零添加到12位EAN代碼的任何建議。 EAN碼默認爲13位(12+ 1控制),但有些製造商使用12位EAN,這意味着您需要添加前導零來使其在某些系統中工作。我如何使用正則表達式來最好地做到這一點?正則表達式將前導零添加到EAN-13
如果代碼已有13位數字,則不應進行更改。 (順便說一句,這不是由於缺少控制數字 - 使用計算器將控制添加到12位數字導致錯誤的條碼只是fyi)
謝謝!
關於如何最佳使用正則表達式將前導零添加到12位EAN代碼的任何建議。 EAN碼默認爲13位(12+ 1控制),但有些製造商使用12位EAN,這意味着您需要添加前導零來使其在某些系統中工作。我如何使用正則表達式來最好地做到這一點?正則表達式將前導零添加到EAN-13
如果代碼已有13位數字,則不應進行更改。 (順便說一句,這不是由於缺少控制數字 - 使用計算器將控制添加到12位數字導致錯誤的條碼只是fyi)
謝謝!
如果您想要使用正則表達式,只需在每個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
這似乎是在我刪除「/」時做的竅門。 使用[myregextester](http://www.myregextester.com/index.php)進行測試。 目前不在身份證機器,很快就會在那裏測試.. 非常感謝,這是一個簡單的! – user3181084
'/'是分隔符,'myregextester.com'自動添加它們。 – zessx
好的,這是很好的知道。 – user3181084
的Java:
String EAN13 = (EAN.length()==12?"0":"") + EAN;
PHP:
$ean13 = (strlen($ean)==12?"0":"") . $ean;
這是不使用正則表達式,只是普通的預等待與零的EAN,如果EAN是12位長。
我不太熟悉這種書寫方式.InDesign插件使用簡單的Regex字符串進行搜索和替換。 – user3181084
對不起,我以爲這是Java,但看着標籤,你並沒有真正指定語言...... –
爲什麼正則表達式的解決這個問題的一個必要組成部分?看起來像(檢查字符串的長度,如果長度是12,則預先設置一個0)是大多數語言中幾行直截了當的代碼。 –
我的想法。 –
由於我正在使用的系統,InDesign的數據導入,我需要使用正則表達式。 – user3181084