javascript - Reg Exp 格式为 MM/YY 的日期
问题描述
我有 MM/YY 格式的日期掩码。必须有month >= then current,并且year >= then current year。
我在这里有正则表达式模式:
<input id="expiration" type="tel" placeholder="MM/YY" class="masked" pattern="(1[0-2]|0[1-9])\/(1[8-9]|2\d)" data-valid-example="12/18" onchange="onChangeInput(event)"/>
这种格式似乎还可以,但我仍然可以写不到 18 岁的一年。
需要你一点帮助,堆栈溢出。
解决方案
该模式看起来不错,但是正如使用输入类型 tel 所指出的那样,它可能不是一个好主意,因为它在语义上不一致。
您可以尝试使用脚本而不是依赖浏览器验证,因为支持不完整。像下面这样的东西可能适合。
function validateInput(evt) {
var re = new RegExp(this.pattern);
var s = this.value;
// Show whether value is valid or not when input is full
document.querySelector('#s0').textContent = s.length < 5 || re.test(s)? '' : 'Invalid';
}
window.onload = function(){
document.querySelector('#i0').addEventListener('input',validateInput, false);
};
<input id="i0" type="text" placeholder="MM/YY" pattern="(1[0-2]|0[1-9])\/(1[8-9]|2\d)" maxlength="5"><br>
<span id="s0"></span>
推荐阅读
- ios - Swift Custom Cell 不会在其中实例化标签!致命错误:在隐式展开可选值时意外发现 nil
- twincat - 如何处理不同版本的 TwinCat 3
- java - 使用 pojo 对象的 Spring jdbctemplate 插入
- xml - 如何在 Android Studio 中为部分约束布局添加背景颜色?
- c++ - 在 CYGWIN 下,与 GCC 的交叉编译失败时
已经包括了 - vue.js - 嵌套 Vue 可组合项
- oracle - PL/SQL:我收到错误“遇到符号“FOR”时预期以下之一:. (* @ % & - + /"
- indexing - gcp 云数据存储索引策略
- dart - 为什么 TweenAnimationBuilder 无法使用其 tween 属性推断类型?
- r - 返回 R 中的输入参数