免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 红狐狸
打印 上一主题 下一主题

身份证15位转18位 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-04-06 22:11 |只看该作者
LZ已经说了,是把15位的身份证号码转换成18位的,就是用awk写出了转换公式

论坛徽章:
0
12 [报告]
发表于 2010-04-06 22:15 |只看该作者
回复 1# 红狐狸


    最好能把具体的需求贴上来,如身份证15位转18位的逻辑,这样大家才有心情来分析你的代码,从而提出改进的方案,互相学习嘛

论坛徽章:
0
13 [报告]
发表于 2010-04-06 22:28 |只看该作者

  1. 看LZ的代码,公式是:
  2. awk '
  3. BEGIN{FS=OFS=""}
  4. if(NF==18){print}
  5. else if(NF==15)
  6. {
  7. $7="19"$7
  8. $0=$0
  9. k=$1*7+$2*9+$3*10+$4*5+$5*8+$6*4+$7*2+$8*1+$9*6+$10*3+$11*7+$12*9+$13*10+$14*5+$15*8+$16*4+$17*2
  10. k=k%11
  11. k++
  12. $18=substr("10X98765432",k,1)
  13. print
  14. }
  15. else{print "错误的身份证号码"}
复制代码

论坛徽章:
2
2015年亚洲杯之巴勒斯坦
日期:2015-02-15 12:11:292015年辞旧岁徽章
日期:2015-03-03 16:54:15
14 [报告]
发表于 2010-04-06 22:59 |只看该作者
哈哈,高

论坛徽章:
0
15 [报告]
发表于 2010-04-06 23:03 |只看该作者
晒代码?
blackold 发表于 2010-04-06 22:01



    黑哥给改进下

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
16 [报告]
发表于 2010-04-06 23:31 |只看该作者
回复 15# welcome008


    写一个函数来求校验码比较好。

   另外,18位也要验证,它未必是合法的身份证,现在作假太多了。

论坛徽章:
0
17 [报告]
发表于 2010-04-06 23:52 |只看该作者
回复 16# blackold


    关键是15位转18位的规则,LZ都没说

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
18 [报告]
发表于 2010-04-06 23:53 |只看该作者
回复 17# welcome008


    搜一下就知道了,国家龟腚。

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
19 [报告]
发表于 2010-04-07 00:01 |只看该作者
本帖最后由 liaosnet 于 2010-04-07 00:05 编辑
回复  welcome008


    搜一下就知道了,国家龟腚。
blackold 发表于 2010-04-06 23:53



    这个很难用规则来定下来吧..
比如

360101200001010011
特别是最后的识别位,这个如果15位相同的话基本上是谁先来谁给的号前..

我说的是如果原来两个人的身份证号码相同的话.

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
20 [报告]
发表于 2010-04-07 00:16 |只看该作者
回复 19# liaosnet

GB11643-1999
    http://www.fyyk.com/id03.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP