UNPKG

@natlibfi/issn-verify

Version:

Verify ISSN (International Standard Serial Number)

29 lines (23 loc) 625 B
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)); }