客户需求如下
CodePen程序码:https://codepen.io/shih-min-chou/pen/RwZEjGg
HTML Input
<input type="text" class="form-control" id="inputDate" placeholder="西元年月日 如:19901201"
onkeyup = "value=value.replace(/[^0-9\-]/g,'')" inputmode="numeric" minlength="8" maxlength="8"
onchange="checkDate(this)" pattern="(?:19|20)(?:(?:[13579][26]|[02468][048])-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))|(?:[0-9]{2}-(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:29|30))|(?:(?:0[13578]|1[02])-31)))"
title="西元年月日 如:19901201" required>
中间pattern部分参考https://www.html5pattern.com/Dates
value.replace 让Input仅能输入数字及'-'符号
inputmode 让手机用户的键盘仅能输入数字
让送出时仅能输入19xx年或20xx年
<script>
function checkDate(o){
var dateVal = o.value
var dateYear = dateVal.substr(0, 4);
var dateMonth = dateVal.substr(4, 2);
var dateDay = dateVal.substr(6, 2);
function clearInput(){
o.focus();
o.value = '';
}
if (dateVal !== '' && dateVal.length == 8){
dateVal = dateYear + "-" + dateMonth + "-" + dateDay;
o.value = dateVal;
var age = getAge(dateVal);
if ( age < 20 ){
alert('年龄需满20岁以上');
clearInput();
}else if ( age > 75 ){
alert('年龄需75岁以下');
clearInput();
}
}else {
alert("请输入正确格式 西元年月日 如:19901201");
clearInput();
}
}
//抓取年龄
function getAge(dateString) {
var today = new Date();
var birthDate = new Date(dateString);
var age = today.getFullYear() - birthDate.getFullYear();
var m = today.getMonth() - birthDate.getMonth();
if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
age--;
}
return age;
}
</script>
大概纪录一下,因为网路上几乎都只找的到使用Datepicker的方式
<<: Windows Server 如何安装 SQL Server 2019 免费开发版
>>: Python & SQLALchemy 学习笔记_资料表的建立
令我意外的是…昨天的面试考古题破解区(1)人气满高的也,哈哈哈! 事不疑迟,我们今天马上来看看面试...
如果你有 Localhost 开发环境需要以 HTTPS 浏览时,可以参考以下方法: 方法一:vue...
汇入基线模型(Baseline model) %matplotlib inline import m...
在实际开发中,一定会需要将资料持久化,常见的持久化技术有Spring 自带的JdbcTemplate...
昨天我们已经把资料写进去了, 今天要开始显示留言板了, 但是首先我们需要抓使用者的图片, 所以要先在...