今天我们要制作一个demo,用户只需要输入身份证号,就能够获取到用户的生日,年龄,并计算出距离用户下一次过生日还有多少天。demo中主要用到了字符串的分割和函数组件,下面是具体的实现步骤。
使用ivx实现解析身份证号的经验总结_第1张图片
1.demo中计算的结果存放在一个通用变量中,我们将三个负责展示结果的文本组件直接与通用变量进行数据绑定。
使用ivx实现解析身份证号的经验总结_第2张图片
2.点击按钮后首先判断输入框的输入内容是否为一个身份证号,如果不是则提示用户核实。
使用ivx实现解析身份证号的经验总结_第3张图片
3.如果输入内容为身份证号则从中提取信息赋值到通用变量。身份证号的7-14位是出生日期码,其中7-10位是年份,11-12位为月份,13-14位是日期。于是使用slice方法分别提取年、月、日,然后拼接成yyyy-mm-dd格式存储到通用变量的birthday元素,另外用当前日期的年份减去提取出来的年份则可以得到用户的年龄,我们将其存储到通用变量的age元素中。
使用ivx实现解析身份证号的经验总结
使用ivx实现解析身份证号的经验总结_第4张图片
4.接下来是通过函数组件计算当天距用户下一次生日还有多少天,函数的接收参数为输入的身份证号。
第一步是用今年的年份加上身份证号中的月份和日期拼接出用户yyyy-mm-dd格式的今年生日日期,然后获取这个日期的时间戳(时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数)。
第二步同理,拼接出yyyy-mm-dd格式的当天日期并获取其时间戳。
第三步则根据前面两个时间戳进行一个判断,如果当天日期的时间戳更小则说明用户今年还没有过生日,则直接用今年生日日期时间戳减去当天日期时间戳,然后将结果转换成以日为单位即可,反之则拼接出用户明年生日日期并获取时间戳再减去当当天日期时间戳进行计算。(demo中没有处理生日为闰年2月29号的情况,大家可以自行添加逻辑)
使用ivx实现解析身份证号的经验总结_第5张图片
5.最后,就是将计算的结果作为函数的返回参数,在函数的回调中将其赋值给通用变量的birthdayCount元素。
使用ivx实现解析身份证号的经验总结_第6张图片
总结
其实函数组件部分的内容也是可以写在一个动作组内的,yyyy-mm-dd格式日期就是一个字符串,可以用文本变量存储,而时间戳可以用数值变量存储,另外当前动作组设置返回结果的动作就类似于函数中的return,这里做了一个简单的示范,剩余部分大家可以自己尝试一下,最后是可以和函数组件一样调用并且在回调中拿到计算结果的。
使用ivx实现解析身份证号的经验总结_第7张图片
使用ivx实现解析身份证号的经验总结_第8张图片