设为首页收藏本站淘宝杂货铺

从F到0 - From F to 0

 找回密码
 注册已关闭
搜索
查看: 288|回复: 0
收起左侧

易语言实现判断校验 中国18位居民身份证号码的格式、校验位是否合法有效 (返回逻辑型)

[复制链接]
发表于 2023-4-2 08:02:38 | 显示全部楼层 |阅读模式
1.png
  1. .版本 2

  2. .程序集 程序集1

  3. .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码


  4. _临时子程序 ()  ' 在初始化代码执行完毕后调用测试代码
  5. 返回 (0)  ' 可以根据您的需要返回任意数值

  6. .子程序 _临时子程序
  7. .局部变量 身份证号码, 文本型

  8. ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
  9. .如果真 (输入框 (“请输入18位身份证号码:”, , , 身份证号码, #输入文本, ) = 假)
  10.     结束 ()
  11. .如果真结束
  12. 信息框 (身份证校验 (身份证号码), 0, , )


  13. .子程序 身份证校验, 逻辑型, 公开, 有效返回真,无效返回假
  14. .参数 身份证号码, 文本型, , 18位数字 最后一位可以为X
  15. .局部变量 号码, 字节型, , "18"
  16. .局部变量 计数, 整数型
  17. .局部变量 A, 字节型, , "17"
  18. .局部变量 B, 字节型, , "10"
  19. .局部变量 校验和, 短整数型

  20. A = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 }
  21. B = { 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 }
  22. 校验和 = 0
  23. .如果真 (取文本长度 (身份证号码) ≠ 18)
  24.     返回 (假)
  25. .如果真结束
  26. .如果真 (到时间 (取文本中间 (身份证号码, 7, 8)) = [100年1月1日])
  27.     返回 (假)
  28. .如果真结束
  29. .计次循环首 (18, 计数)
  30.     号码 [计数] = 取身份证数字 (取代码 (身份证号码, 计数))
  31.     .如果真 (选择 (计数 = 18, 号码 [计数] = 255, 号码 [计数] ≥ 10))
  32.         返回 (假)
  33.     .如果真结束
  34.     .如果真 (计数 ≤ 17)
  35.         校验和 = 校验和 + 号码 [计数] × A [计数]
  36.     .如果真结束

  37. .计次循环尾 ()
  38. 返回 (B [1 + 校验和 % 11] = 号码 [18])

  39. .子程序 取身份证数字, 字节型, , 48~57返回0~9,88或120返回10,其余返回255
  40. .参数 字符代码, 字节型

  41. 置入代码 ({ 138, 69, 8, 60, 48, 114, 8, 60, 57, 119, 4, 44, 48, 235, 14, 60, 88, 116, 4, 60, 120, 117, 4, 176, 10, 235, 2, 176, 255, 15, 182, 192, 201, 194, 4, 0 })
  42. ' mov al,[ebp+8]
  43. ' .if al >= 48 && al <= 57
  44. ' sub al,48
  45. ' .elseif al == 88 || al == 120
  46. ' mov al,10
  47. ' .else
  48. ' mov al,255
  49. ' .endif
  50. ' movzx eax,al
  51. ' leave
  52. ' retn 4
  53. 返回 (0)
复制代码

相关帖子

您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

QQ|手机版|Archiver|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备15010402000325号

腾讯云安全认证

GMT+8, 2024-4-27 03:07 , Processed in 1.421082 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表