项目中用户列表需要显示年龄和生日,接口返回里只有身份证,不想改接口了,前端处理下,也复习下字符串处理和时间函数相关知识,做个记录,方便以后查看
先上代码
let card = '140121199001255421'
let age = card.substr(6, 4)
let date = new Date()
let year = date.getFullYear()
age = year - age
let birthday = card.substr(6, 4) + '-' + card.substr(10, 2) + '-' + card.substr(12, 2)
return age // 返回年龄
return birthday // 返回年龄
这里用到了字符串截取、时间函数、计算年龄时最好加上数据类型转换(字符串转数字)、字符串拼接顺便也复习下字符串转数组和数组转字符串的知识,下边分别简单复习下上述知识点
字符串截取
取字符串的三个函数:slice(start,[end]),substring(start,[end])和substr(start,[length])
相关属性:
slice()
第一个参数代表开始位置,第二个参数代表结束位置的下一个位置,截取出来的字符串的长度为第二个参数与第一个参数之间的差;若参数值为负数,则将该值加上字符串长度后转为正值;若第一个参数等于大于第二个参数,则返回空字符串.
substring()
第一个参数代表开始位置,第二个参数代表结束位置的下一个位置;若参数值为负数,则将该值转为0;两个参数中,取较小值作为开始位置,截取出来的字符串的长度为较大值与较小值之间的差.
substr()
第一个参数代表开始位置,第二个参数代表截取的长度
var stmp = "rcinn.cn";
alert(stmp.slice(3));//从第4个字符开始,截取到最后个字符;返回"nn.cn"
alert(stmp.substring(3));//从第4个字符开始,截取到最后个字符;返回"nn.cn"
alert(stmp.slice(0));//返回整个字符串
alert(stmp.substring(0));//返回整个字符串
alert(stmp.slice(2,-5));//返回"i"
alert(stmp.substring(2,-5));