Il controllo della carta di credito esiste ed io lo ho applicato in asp. La funzione effettua un controllo di tipo luhn. Tutte le più importanti carte di credito quale VISA, MasterCard, American Express, contengono un numero di controllo che consente di verificare se il numero di carta di credito è valido. Ovviamente non è possibile utilizzare una verifica Luhn per stabilire se il cliente ha un credito residuo sul conto associato alla sua carta di credito o se il cliente è effettivamente il titolare; tuttavia l'utilizzo del test Luhn è un sistema efficace che consente di scartare i numeri di carta di credito non validi.
In ASP ho utilizzato qusta funzione:
FUNCTION validCCNumber( ccnumero )
ccnumero = cleanCCNum( ccnumero )
IF ccnumero = "" THEN
validCCNumber = FALSE
ELSE
isEven = False
digits = ""
For i = Len(ccnumero ) To 1 Step -1
If isEven Then
digits = digits & CINT( MID( ccnumero, i, 1)) * 2
Else
digits = digits & CINT( MID( ccnumero, i, 1))
End If
isEven = (Not isEven)
Next
checkSum = 0
For i = 1 To Len( digits ) Step 1
checkSum = checkSum + CINT( MID( digits, i, 1))
Next
validCCNumber = (( checkSum Mod 10) = 0 )
END IF
END FUNCTION
Questa funzione consente di controllare se il numero è valido tramite il seguente calcolo:
si moltiplicano per 2 tutte le cifre, a partire dall'ultima e si sommano tra loro i risultati di tali moltiplicazioni. Se il risultato è un multiplo di 10, il numero della carta di credito supera il test.
Questa funzione richiama anche un'altra funzione chiamata cleanCCNum() che elimina qualsiasi carattere non numerico, infatti spesso gli utenti inseriscono anche i trattini e gli spazi. La funzione è questa:
FUNCTION cleanCCNum( ccnumero )
FOR i = 1 TO LEN( ccnumero )
IF isNumeric( MID( ccnumero, i, 1 )) THEN
cleanCCNum = cleanCCNum & MID( ccnumero, i, 1 )
END IF
NEXT
END FUNCTION
Ho trovato queste funzioni in vbsript e funzionano benissimo, ora avrei bisogno di applicarle anche in javascript, qualcuno può aiutarmi?