/**
* @author KingBoySoft
* 验证信用卡或银联卡卡号是否符合标准,
* 如果符合返回true,否则返回false.
*/
function validateCard(number)
{
try
{
if (number.length==0 || number.length<12 || number.length>19) return false;
var Exp=/[34569]/;
var objExp=new RegExp(Exp);
if (objExp.test(number.charAt(0)==false)) return false;
var tempNumber=reverse(number); //反转
var tempS=0; //保存基数之和
var tempD=0; //保存偶数位*2后之和
for(var i=0;i<tempNumber.length;i++)
{
if (i%2==0) //说明是基数,因为从0位开始
{
tempS=tempS+tempNumber.charAt(i)*1;
}
else
{
var temp=tempNumber.charAt(i)*2;
if (temp>9)
{tempD=tempD+(temp/10|0)+temp%10;}
else
tempD=tempD+temp;
}
}
var sum=tempS+tempD;
if (sum%10==0)
return true;
else
return false;
}catch(ex)
{
return false;
}
}
/**
*
* @param {Object} source,被反转的字符串,
* 返回反转后的字符串
*/
function reverse(source){
var s=source;
var ss="";
for(i=s.length-1;i>=0;i--){
ss=ss+s.charAt(i);
}
return ss;
}
//javascript/7086