@natlibfi/issn-verify
Version:
Verify ISSN (International Standard Serial Number)
20 lines (19 loc) • 556 B
JavaScript
export function issn(input) {
if (input.length < 8) {
input = input.padStart(8, "0");
}
const reg = /^\d{4}\-?\d{3}[\dX]$/;
if (!input.match(reg)) {
return false;
}
const num = input.substr(0, input.length - 1).replace(/\-/, "").split("").reverse().reduce(function(prv, cur, idx) {
let i = idx + 2;
return prv + cur * i;
}, 0) % 11;
const check = num === 0 ? 0 : 11 - num;
if (check === 10) {
return "X" === input.substr(-1);
}
return check === parseInt(input.substr(-1));
}
//# sourceMappingURL=issnVerify.js.map