根据身份证号码(15位或者18位)自动获取出生日期及性别

虽然15位出生日期已经失效了 但是可能有少许人用 所以都处理了

// 身份证号码验证和解析
			yanzhen(sfz) {
				var sfzhmcode = sfz;
				if (sfzhmcode.length == 15) {不需要处理15位的删去这个判断就行
					if (!(/^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$/.test(sfzhmcode))) {
						uni.showToast({
							title: "您输入的身份证号码不是有效格式",
							icon: 'none'
						})
					} else {
						this.birthday =  "19"+ sfzhmcode.slice(6,12);
						this.birthday = this.birthday.replace(/(.{4})(.{2})/,"$1-$2-");
						this.getSex(sfz);
					}
				} else if (sfzhmcode.length == 18) {
					if ( !(/^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/.test(sfzhmcode))) {
						uni.showToast({
							title: "您输入的身份证号码不是有效格式",
							icon: 'none'
						})
					}else{
						this.birthday =  sfzhmcode.slice(6,14);
						this.birthday = this.birthday.replace(/(.{4})(.{2})/,"$1-$2-");
						this.getSex(sfz);
					}
				}else{
					uni.showToast({
						title: "请输入的15或者18位身份证号",
						icon: 'none'
					})
				}
			},
			// 获取性别
			getSex(idCard) {
				if (parseInt(idCard.slice(-2, -1)) % 2 == 1) {
					this.sex = '男';
				}
				else {
					this.sex = '女';
				}
			}

在填写完身份证号码时调用 例如
this.yanzhen("350424870506202");
结果:
1987-05-06
writeInfo.vue:67 女
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值