JSFiddle - React, Tailwind, and code Playground
HTML
<input id="seq" value="123456789" max=999999999 min=100000000 type=number onchange="humannum()" />
<button onclick="randnum()">rand</button>
<input id="res" value="">
JavaScript
function humannum() {
var num9 = $('#seq').val();
if (num9.length != 9) {
$('#res').val('wrong num');
return;
}
var k1 = [4, 8, 7, 4, 11, 9, 5, 3, 8];
var k2 = [2, 4, 8, 7, 4, 11, 9, 5, 3, 8];
var num10 = calk(num9, k1);
var num11 = calk(num9 + '' + num10, k2);
$('#res').val(num9 + '' + num10 + '' + num11);
}
function calk(num, k) {
var n = [];
var x = [];
for (var i = 0; i < num.length; i++) {
n[i] = parseInt(num[i])
x[i] = parseInt(num[i]) * parseInt(k[i]);
}
var sx = x.reduce((accumulator, currentValue) => {
return accumulator + currentValue
});
var mod = parseInt(sx) % 11;
var preres = 11 - mod;
var res = preres;
if (preres >= 10) {
res = 0;
}
return res;
}
function randnum() {
var y = '';
for (var a = 1; a <= 9; a++) {
var x = Math.floor(Math.random() * 9);
y += '' + x;
}
$('#seq').val(y).change();
}