使用ivx實現解析身份證號的經驗總結

今天我們要製作一個demo,用戶只需要輸入身份證號,就能夠獲取到用戶的生日,年齡,並計算出距離用戶下一次過生日還有多少天。demo中主要用到了字符串的分割和函數組件,下面是具體的實現步驟。
使用ivx實現解析身份證號的經驗總結
1.demo中計算的結果存放在一個通用變量中,我們將三個負責展示結果的文本組件直接與通用變量進行數據綁定。
使用ivx實現解析身份證號的經驗總結
2.點擊按鈕後首先判斷輸入框的輸入內容是否爲一個身份證號,如果不是則提示用戶覈實。
使用ivx實現解析身份證號的經驗總結
3.如果輸入內容爲身份證號則從中提取信息賦值到通用變量。身份證號的7-14位是出生日期碼,其中7-10位是年份,11-12位爲月份,13-14位是日期。於是使用slice方法分別提取年、月、日,然後拼接成yyyy-mm-dd格式存儲到通用變量的birthday元素,另外用當前日期的年份減去提取出來的年份則可以得到用戶的年齡,我們將其存儲到通用變量的age元素中。
使用ivx實現解析身份證號的經驗總結
使用ivx實現解析身份證號的經驗總結
4.接下來是通過函數組件計算當天距用戶下一次生日還有多少天,函數的接收參數爲輸入的身份證號。
第一步是用今年的年份加上身份證號中的月份和日期拼接出用戶yyyy-mm-dd格式的今年生日日期,然後獲取這個日期的時間戳(時間戳是指格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現在的總毫秒數)。
第二步同理,拼接出yyyy-mm-dd格式的當天日期並獲取其時間戳。
第三步則根據前面兩個時間戳進行一個判斷,如果當天日期的時間戳更小則說明用戶今年還沒有過生日,則直接用今年生日日期時間戳減去當天日期時間戳,然後將結果轉換成以日爲單位即可,反之則拼接出用戶明年生日日期並獲取時間戳再減去噹噹天日期時間戳進行計算。(demo中沒有處理生日爲閏年2月29號的情況,大家可以自行添加邏輯)
使用ivx實現解析身份證號的經驗總結
5.最後,就是將計算的結果作爲函數的返回參數,在函數的回調中將其賦值給通用變量的birthdayCount元素。
使用ivx實現解析身份證號的經驗總結
總結
其實函數組件部分的內容也是可以寫在一個動作組內的,yyyy-mm-dd格式日期就是一個字符串,可以用文本變量存儲,而時間戳可以用數值變量存儲,另外當前動作組設置返回結果的動作就類似於函數中的return,這裏做了一個簡單的示範,剩餘部分大家可以自己嘗試一下,最後是可以和函數組件一樣調用並且在回調中拿到計算結果的。
使用ivx實現解析身份證號的經驗總結
使用ivx實現解析身份證號的經驗總結
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章