Sha256: 7ccf623a4de4d8f518132e418db4ea20e624f4afb0c6c80630029e1e06f9c3c9
Contents?: true
Size: 786 Bytes
Versions: 63
Compression:
Stored size: 786 Bytes
Contents
class Luhn { static valid(value: string): boolean { const numbers = value.replace(/\s/g, '') const digits = [...numbers] const sum = digits // convert to integers .map((d) => parseInt(d, 10)) // double even positions (odd indexes) .map((d, i) => { if (i % 2 !== 0) { return d * 2 } return d }) // limit to digits less than 10 .map((d) => { if (d > 9) { return d - 9 } return d }) // sum all digits .reduce((d, acc) => d + acc, 0) return sum > 0 && sum % 10 === 0 } } export default Luhn
Version data entries
63 entries across 63 versions & 1 rubygems