package luhn import ( "unicode" "strings" ) // Valid checks a given number for validity according to Luhn's formula func Valid(card string) bool { sum := 0 card = strings.ReplaceAll(card, " ", "") if len(card) <= 1 { return false } for idx, char := range card { if !unicode.IsDigit(char) { return false } digit := int(char - '0') if (len(card)-idx-1)%2 == 0 { sum += digit } else { digit *= 2 if digit > 9 { sum += digit - 9 } else { sum += digit } } } return sum%10 == 0 }