JSFiddle - React, Tailwind, and code Playground
HTML
<div id="demo">
</div>
JavaScript
function getCharCode(chaine, index, position) {
return String.fromCharCode(position + parseInt(chaine.substr(index, 1)));
}
function EAN(chaine) {
var i = 0;
var first = 0;
var checksum = 0;
var CodeBarre = "";
var tableA = 0;
if (chaine.match(/^\d{12}$/)) {
for (i = 1; i < 12; i += 2) {
chaine.substr(i, 1);
checksum += parseInt(chaine.substr(i, 1));
}
checksum *= 3;
for (i = 0; i < 12; i += 2) {
checksum += parseInt(chaine.substr(i, 1));
}
chaine += (10 - checksum % 10) % 10;
CodeBarre = chaine.substr(0, 1) + getCharCode(chaine, 1, 65);
first = parseInt(chaine.substr(0, 1));
for (i = 2; i <= 6; i++) {
tableA = false;
switch (i) {
case 2:
if (first >= 0 && first <= 3) tableA = true;
break;
case 3:
if (first == 0 || first == 4 || first == 7 || first == 8) tableA = true;
break;
case 4:
if (first == 0 || first == 1 || first == 4 || first == 5 || first == 9) tableA = true;
break;
case 5:
if (first == 0 || first == 2 || first == 5 || first == 6 || first == 7) tableA = true;
break;
case 6:
if (first == 0 || first == 3 || first == 6 || first == 8 || first == 9) tableA = true;
break;
}
if (tableA)
CodeBarre += getCharCode(chaine, i, 65);
else
CodeBarre += getCharCode(chaine, i, 75);
}
CodeBarre += "*";
for (i = 7; i <= 12; i++) {
CodeBarre += getCharCode(chaine, i, 97);
}
CodeBarre += "+";
}
return CodeBarre;
}
document.getElementById("demo").innerHTML = EAN("618110032764");