【问题标题】:regular expression validation of Date of Birth of range 1977 to 1999 [duplicate]1977年至1999年出生日期的正则表达式验证[重复]
【发布时间】:2016-11-23 08:58:54
【问题描述】:

如何在 javascript 中验证 1977 到 1999 范围内的出生日期输入 code here DOB

function validate() {
  var dob = document.getElementById('txtDOB').value;

  var pattern = /^()$/;

  if (dob == null || dob == "" || !pattern.test(dob)) {

    alert('Invalid date of birth');
    return false;
  } else {
    alert('valid');
    return true;
  }
}
<input type="text" id="txtDOB" />
<input type="button" value="Submit" onclick="validate()" />

【问题讨论】:

  • DOB 的有效格式是什么? DD-MM-YYYY?
  • 如何将字符串更改为 int 然后比较 int?
  • 我的日期格式是(dd/mm/yyyy),数据类型是日期
  • 你可以使用this 只是改变那里的年份范围!另请注意,它是 mm/dd/yyyy
  • 如果有固定格式的 DOB,如 YYYY/MM/DD,用 '/' 分割字符串,然后检查年份是否在给定范围内。

标签: javascript jquery regex


【解决方案1】:

检查年份 + 有效日期

function validate() {
  var date = new Date(document.getElementById('txtDOB').value), date = date ? date.getFullYear() : false;

  if (date && date >= 1977 && date <= 1999) {
    alert('valid');
    return true;
  } else {
    alert('Invalid date of birth');
    return false;
  }
}
<input type="text" id="txtDOB" />
<input type="button" value="Submit" onclick="validate()" />

只检查年份(没有有效的检查日期):

function validate() {
  var date = document.getElementById('txtDOB').value, date = date.match(/\d{4}/);

  if (date && date[0] >= 1977 && date[0] <= 1999) {
    alert('valid');
    return true;
  } else {
    alert('Invalid date of birth');
    return false;
  }
}
<input type="text" id="txtDOB" />
<input type="button" value="Submit" onclick="validate()" />

仅适用于您的格式 (dd-mm-yyyy):

function validate()
{
  var
    date      = document.getElementById('txtDOB').value,
    year      = date.match(/\d{4}/),
    extract   = date.replace(year,'').match(/(\d+)/g)
  ;

  if(date && year && year[0] >= 1977 && year[0] <= 1999 && new Date(extract[1]+'/'+extract[0]+'/'+year[0]) != 'Invalid Date')
  {
    alert('valid');
    return true;
  }
  else
  {
    alert('Invalid date of birth');
    return false;
  }
}
<input type="text" id="txtDOB" />
<input type="button" value="Submit" onclick="validate()" />

【讨论】:

  • 那么日期和月份呢?
  • 当我输入 13-13-1995 时,提示信息有效,但不正确
  • 最后一个脚本仅适用于您的格式:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-10
  • 1970-01-01
  • 2021-09-14
  • 1970-01-01
  • 1970-01-01
  • 2019-09-27
  • 1970-01-01
相关资源
最近更新 更多