Hi,
The algoritm below first throws away garbage (e.g. dots), thereafter performs the Luhn check.
HTH
PROCEDURE CheckCreditCardLuhn(sCreditCardNumber)
sTmp is string
sAllow is string = "0123456789"
f is int
iSum is int = 0
bAlt is boolean = False
i is int
iVal is int
FOR f = 1 TO Length(sCreditCardNumber)
IF Position(sAllow,sCreditCardNumber[[f]]) > 0 THEN
sTmp += sCreditCardNumber[[f]]
END
END
FOR i = Length(sTmp) TO 1 STEP -1
iVal = Val(sTmp[[i]])
IF bAlt THEN
iVal = iVal * 2
IF(iVal > 9) THEN
iVal -= 9
END
END
iSum += iVal
bAlt = NOT bAlt
END
RESULT modulo(iSum,10) = 0