isbn3
Version:
ISBN utils: parse, validate, format, audit
20 lines (16 loc) • 442 B
JavaScript
module.exports = isbn => {
let check = 0
if (isbn.length === 9) {
for (let n = 0; n < 9; n += 1) {
check += (10 - n) * isbn.charAt(n)
}
check = (11 - check % 11) % 11
return check === 10 ? 'X' : String(check)
} else if (isbn.length === 12) {
for (let n = 0; n < 12; n += 2) {
check += Number(isbn.charAt(n)) + 3 * isbn.charAt(n + 1)
}
return String((10 - check % 10) % 10)
}
return null
}