| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 619 人关注过本帖
标题:银行卡号是否正确的校验方法之一(根据最后一位是否符合Luhn算法)
取消只看楼主 加入收藏
nbwww
Rank: 8Rank: 8
等 级:贵宾
威 望:11
帖 子:333
专家分:810
注 册:2021-1-9
结帖率:88.24%
收藏
已结贴  问题点数: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
快速回复:银行卡号是否正确的校验方法之一(根据最后一位是否符合Luhn算法)
数据加载中...
 
   



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

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