Sha256: e72e3f508510a83f91f4167423aaa3ba319c97f8cfed0198b9aeebf9454cdf8d

Contents?: true

Size: 497 Bytes

Versions: 59

Compression:

Stored size: 497 Bytes

Contents

class ISBN {
    isbn: string

    constructor(isbn: string) {
        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
    }
}

export default ISBN

Version data entries

59 entries across 59 versions & 1 rubygems

Version Path
trackler-2.2.1.159 tracks/typescript/exercises/isbn-verifier/isbn-verifier.example.ts
trackler-2.2.1.158 tracks/typescript/exercises/isbn-verifier/isbn-verifier.example.ts
trackler-2.2.1.157 tracks/typescript/exercises/isbn-verifier/isbn-verifier.example.ts
trackler-2.2.1.156 tracks/typescript/exercises/isbn-verifier/isbn-verifier.example.ts
trackler-2.2.1.155 tracks/typescript/exercises/isbn-verifier/isbn-verifier.example.ts
trackler-2.2.1.154 tracks/typescript/exercises/isbn-verifier/isbn-verifier.example.ts
trackler-2.2.1.153 tracks/typescript/exercises/isbn-verifier/isbn-verifier.example.ts
trackler-2.2.1.152 tracks/typescript/exercises/isbn-verifier/isbn-verifier.example.ts
trackler-2.2.1.151 tracks/typescript/exercises/isbn-verifier/isbn-verifier.example.ts
trackler-2.2.1.150 tracks/typescript/exercises/isbn-verifier/isbn-verifier.example.ts
trackler-2.2.1.149 tracks/typescript/exercises/isbn-verifier/isbn-verifier.example.ts
trackler-2.2.1.148 tracks/typescript/exercises/isbn-verifier/isbn-verifier.example.ts
trackler-2.2.1.147 tracks/typescript/exercises/isbn-verifier/isbn-verifier.example.ts
trackler-2.2.1.146 tracks/typescript/exercises/isbn-verifier/isbn-verifier.example.ts
trackler-2.2.1.145 tracks/typescript/exercises/isbn-verifier/isbn-verifier.example.ts
trackler-2.2.1.144 tracks/typescript/exercises/isbn-verifier/isbn-verifier.example.ts
trackler-2.2.1.143 tracks/typescript/exercises/isbn-verifier/isbn-verifier.example.ts
trackler-2.2.1.142 tracks/typescript/exercises/isbn-verifier/isbn-verifier.example.ts
trackler-2.2.1.141 tracks/typescript/exercises/isbn-verifier/isbn-verifier.example.ts
trackler-2.2.1.140 tracks/typescript/exercises/isbn-verifier/isbn-verifier.example.ts