Sha256: baa8aa23ebed6c54f3137f021862946800488d255d1047f6294cab81278a7737
Contents?: true
Size: 390 Bytes
Versions: 124
Compression:
Stored size: 390 Bytes
Contents
export default class ISBN { constructor(isbn) { this.isbn = isbn.replace(/-/g, ''); } isValid() { if (!this.isbn.match(/^(\d{9}[\dxX])$/)) return false; const digits = [...this.isbn]; if (digits[9].match(/[xX]/)) digits[9] = 10; const sum = digits.reduce((acc, value, index) => acc + ((10 - index) * parseInt(value, 10)), 0); return sum % 11 === 0; } }
Version data entries
124 entries across 124 versions & 1 rubygems