|
@@ -197,6 +197,42 @@ export default {
|
|
|
return isJPG
|
|
|
}
|
|
|
return isJPG
|
|
|
- }
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 从身份证号中获取出生日期、性别、年龄
|
|
|
+ * @param idCard
|
|
|
+ * @returns {{sex: string, birth: null, age: number}}
|
|
|
+ */
|
|
|
+ decomposeIdCard(idCard) {
|
|
|
+ let sex = null
|
|
|
+ let birth = null
|
|
|
+ let myDate = new Date()
|
|
|
+ let month = myDate.getMonth() + 1
|
|
|
+ let day = myDate.getDate()
|
|
|
+ let age = 0
|
|
|
+
|
|
|
+ if (idCard.length === 18) {
|
|
|
+ age = myDate.getFullYear() - idCard.substring(6, 10) - 1
|
|
|
+ sex = idCard.substring(16, 17)
|
|
|
+ birth = idCard.substring(6, 10) + '-' + idCard.substring(10, 12) + '-' + idCard.substring(12, 14)
|
|
|
+ // eslint-disable-next-line no-mixed-operators
|
|
|
+ if (idCard.substring(10, 12) < month || idCard.substring(10, 12) === month && idCard.substring(12, 14) <= day) age++
|
|
|
+
|
|
|
+ }
|
|
|
+ if (idCard.length === 15) {
|
|
|
+ age = myDate.getFullYear() - idCard.substring(6, 8) - 1901
|
|
|
+ sex = idCard.substring(13, 14)
|
|
|
+ birth = '19' + idCard.substring(6, 8) + '-' + idCard.substring(8, 10) + '-' + idCard.substring(10, 12)
|
|
|
+ // eslint-disable-next-line no-mixed-operators
|
|
|
+ if (idCard.substring(8, 10) < month || idCard.substring(8, 10) === month && idCard.substring(10, 12) <= day) age++
|
|
|
+ }
|
|
|
+
|
|
|
+ if (sex % 2 === 0) {
|
|
|
+ sex = '2' // 性别代码 1代表男,2代表女,暂时不涉及其他类型性别
|
|
|
+ } else {
|
|
|
+ sex = '1'
|
|
|
+ }
|
|
|
+ return {age, sex, birth}
|
|
|
+ },
|
|
|
|
|
|
}
|