标题:银行卡号是否正确的校验方法之一(根据最后一位是否符合Luhn算法)
取消只看楼主
nbwww
Rank: 6Rank: 6
等 级:贵宾
威 望:10
帖 子:222
专家分:468
注 册:2021-1-9
结帖率:88.89%
已结贴  问题点数:20 回复次数:0 
银行卡号是否正确的校验方法之一(根据最后一位是否符合Luhn算法)
写得不太规范,高手请绕行
程序代码:
CLEAR 
no1='6222888800010008'   &&卡号
len2=INT(LEN(no1)/2)
IF LEN(no1)#16 
   =MESSAGEBOX('卡号长度错误')
ENDIF   
endwei=0 
FOR ii=1 TO len2  &&偶数*2  结果大于10   -9或者十位数+个位数
   js=ALLTRIM(STR(VAL(LEFT(RIGHT(no1,ii*2),1))*2))
   IF VAL(js)>=10
      endwei=endwei+VAL(LEFT(js,1))+VAL(RIGHT(js,1))
   ELSE    
      endwei=endwei+VAL(js)
   ENDIF    
ENDFOR 
FOR ii=1 TO len2   &&奇数位直接相加
   js=LEFT(right(no1,ii*2-1),1)          
      endwei=endwei+VAL(js) 
ENDFOR
   ?endwei
IF MOD(endwei,10)=0    &&除10 整数  校验通过
  ?no1+'  **校验正确'
ELSE 
  ?no1+'  **校验错误******'
ENDIF 
搜索更多相关主题的帖子: IF LEFT 校验 是否 js 
2023-03-06 21:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-511470-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.076590 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved