UNPKG

@stacksjs/ts-validation

Version:

A simple TypeScript starter kit using Bun.

26 lines 607 B
export default function isLuhnNumber(str: string): boolean { assertString(str) const sanitized = str.replace(/[- ]+/g, '') let sum = 0 let digit let tmpNum let shouldDouble for (let i = sanitized.length - 1; i >= 0; i--) { digit = sanitized.substring(i, (i + 1)) tmpNum = Number.parseInt(digit, 10) if (shouldDouble) { tmpNum *= 2 if (tmpNum >= 10) { sum += ((tmpNum % 10) + 1) } else { sum += tmpNum } } else { sum += tmpNum } shouldDouble = !shouldDouble } return !!((sum % 10) === 0 ? sanitized : false) };