在执行Luhn检查之前剥离空格

时间:2011-02-10 11:25:19

标签: javascript

我有一个功能,可以在发布表单时对卡片条目执行Luhn检查。

<script language="javascript">
 function Calculate(Luhn)
{
var sum = 0;
for (i=0; i<Luhn.length; i++ )
{
    sum += parseInt(Luhn.substring(i,i+1));
}
var delta = new Array (0,1,2,3,4,-4,-3,-2,-1,0);
for (i=Luhn.length-1; i>=0; i-=2 )
{       
    var deltaIndex = parseInt(Luhn.substring(i,i+1));
    var deltaValue = delta[deltaIndex]; 
    sum += deltaValue;
}   
var mod10 = sum % 10;
mod10 = 10 - mod10; 
if (mod10==10)
{       
    mod10=0;
}
return mod10;
}

function Validate(Luhn)
{
var LuhnDigit = parseInt(Luhn.substring(Luhn.length-1,Luhn.length));
var LuhnLess = Luhn.substring(0,Luhn.length-1);
if (Calculate(LuhnLess)==parseInt(LuhnDigit))
{
    return true;
}
alert("\n\nYou have mis-typed your card number! \nPlease check and correct.\n\n")   
return false;
}

我还有一个功能,可以删除卡号onblur中输入的任何空格。

function stripChar(sValue, sChar) {
var i, tempChar, buildString;
buildString = ""
for (var i=0; i<sValue.length; i++) {
    tempChar = sValue.charAt(i);
    if (tempChar != sChar) {
        buildString = buildString + tempChar;
    }
}
return buildString;

如何组合这些功能,以便删除空格并检查卡号。

1 个答案:

答案 0 :(得分:1)

在你的onblur功能中你可以使用:

Validate(stripChar(sValue, sChar));