本文主要是介绍根据出生日期计算出周岁跟月数以及年月日的正则校验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
```java```javascript
//=====.出生日期 失去焦点触发======
$("input[name='birthday']").blur(function () {var birthday = $(this).val();//获取到出生日期的文本值//正则 规范的日期校验var reg= /^((?!0000)[0-9]{4}-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)|([0-9]{2}(0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29)$/;//用test进行校验if(reg.test(birthday)){//调用算年龄的方法countAge 传入我们的值birthday 并且用str变量接收var str = countAge(birthday);$("input[name='age']").val(str[0]);//绑定在岁文本框上$("input[name='month']").val(str[1]);//绑定在月文本框上}else {//如果不符合提示并且清空相关文本框内容layer.alert("请输入正确的日期格式", {icon: 0, title: '提示', anim: 6})$("input[name='birthday']").val("");$("input[name='age']").val("");$("input[name='month']").val("");}
});
//==根据日期算年龄跟月的方法==
function countAge(birthday){if(birthday){//split根据指定字符进行分割返回一个数组birthday=birthday.split('-');// 新建日期对象let date = new Date();// 今天日期,数组,同 birthdaylet today = [date.getFullYear(), date.getMonth() + 1, date.getDate()];// 分别计算年月日差值let age = today.map((val, index) => {return val - birthday[index]})// 当天数为负数时,月减 1,天数加上月总天数if (age[2] < 0) {// 简单获取上个月总天数的方法,不会错let lastMonth = new Date(today[0], today[1], 0)age[1]--age[2] += lastMonth.getDate()}// 当月数为负数时,年减 1,月数加上 12if (age[1] < 0) {age[0]--age[1] += 12}console.log(age[0]+'岁'+age[1]+'月'+age[2]+'天');return [age[0],age[1]];//拿到我们需要的岁跟月 至于天 大家需要可以自行获取}
}
这篇关于根据出生日期计算出周岁跟月数以及年月日的正则校验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!