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

Version Path
trackler-2.2.1.180 tracks/ecmascript/exercises/isbn-verifier/example.js
trackler-2.2.1.179 tracks/ecmascript/exercises/isbn-verifier/example.js
trackler-2.2.1.178 tracks/ecmascript/exercises/isbn-verifier/example.js
trackler-2.2.1.177 tracks/ecmascript/exercises/isbn-verifier/example.js
trackler-2.2.1.176 tracks/ecmascript/exercises/isbn-verifier/example.js
trackler-2.2.1.175 tracks/ecmascript/exercises/isbn-verifier/example.js
trackler-2.2.1.174 tracks/ecmascript/exercises/isbn-verifier/example.js
trackler-2.2.1.173 tracks/ecmascript/exercises/isbn-verifier/example.js
trackler-2.2.1.172 tracks/ecmascript/exercises/isbn-verifier/example.js
trackler-2.2.1.171 tracks/ecmascript/exercises/isbn-verifier/example.js
trackler-2.2.1.170 tracks/ecmascript/exercises/isbn-verifier/example.js
trackler-2.2.1.169 tracks/ecmascript/exercises/isbn-verifier/example.js
trackler-2.2.1.167 tracks/ecmascript/exercises/isbn-verifier/example.js
trackler-2.2.1.166 tracks/ecmascript/exercises/isbn-verifier/example.js
trackler-2.2.1.165 tracks/ecmascript/exercises/isbn-verifier/example.js
trackler-2.2.1.164 tracks/ecmascript/exercises/isbn-verifier/example.js
trackler-2.2.1.163 tracks/ecmascript/exercises/isbn-verifier/example.js
trackler-2.2.1.162 tracks/ecmascript/exercises/isbn-verifier/example.js
trackler-2.2.1.161 tracks/ecmascript/exercises/isbn-verifier/example.js
trackler-2.2.1.160 tracks/ecmascript/exercises/isbn-verifier/example.js