【问题标题】:Reg Exp for Date in format MM/YY格式为 MM/YY 的日期正则表达式
【发布时间】:2018-11-23 10:02:53
【问题描述】:

我有 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岁以内我还是可以写一年的。

需要你一点帮助,堆栈溢出。

【问题讨论】:

  • Seems like he's ok不要这么认为,括号不平衡
  • 请将整个相关代码添加到问题中。
  • 将代码添加到问题中,方法是编辑问题,而不是在评论中转储。
  • 在您的评论中,输入类型为tel。根据 HTML5 规范,<input type="tel"> 用于应包含电话号码的输入字段。 <input type="month"> 允许用户选择月份和年份。根据浏览器支持,日期选择器可以显示在输入字段中。我认为这比试图掩盖电话号码更合适......
  • 伙计,我有不同的任务。我只问过Reg Exp。这种模式是否适合这种日期。喜欢当前或更多当前月份和年份

标签: javascript regex date


【解决方案1】:

该模式看起来不错,但如前所述,使用输入类型 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    • 2023-04-07
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    相关资源
    最近更新 更多