格式为MM / YY的日期的Reg Exp

时间:2018-11-23 10:02:54

标签: javascript regex date

我为自己的日期使用MM / YY格式的遮罩。必须是 month> =然后是当前,并且 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年的年份。

需要您的帮助,堆栈溢出。

1 个答案:

答案 0 :(得分:0)

该模式似乎很好,但是如使用输入类型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>