asp.net - 在 JavaScript 中验证日期

标签 asp.net javascript validation date

我需要对日期字段进行用户验证,它的格式应该是 yyyyMMdd 并且不应超过 future 一年。我该怎么做呢?目前我只有一个粗略的正则表达式,这是不够的。

function VerifyDate(source, args)
{
    var regexp = /^([1-2]{1}[0-9]{1})\d{2}([0][1-9]|[1][0-2])([0][1-9]|[1-2][0-9]|[3][0-1])$/
    var result = args.Value.match(regexp);     
    if(result) {
        args.IsValid = true;
    } else {
        args.IsValid = false;
    }       
}

最佳答案

使用正则表达式只检查格式。你可以保持简单:

^(\d{4})(\d{2})(\d{2})$

然后解析日期并检查范围:

function VerifyDate(source, args)
{
  args.IsValid = false;
  var regexp = /^(\d{4})(\d{2})(\d{2})$/;
  var daysInMonth = function (y, m) {return 32-new Date(y, m, 32).getDate(); };

  var ma = regexp.exec(args.Value);
  if (ma && ma.length == 4 && ma[2] < 12 && ma[3] <= daysInMonth(ma[1], ma[2]))
  {
    var diff = new Date(ma[1], ma[2], ma[3]) - new Date();
    args.IsValid = diff < 31536000000; // one year = 1000ms*60*60*24*365
  }
}

关于asp.net - 在 JavaScript 中验证日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/456964/

相关文章:

asp.net - 使用 Razor 有点像回到经典的 asp

asp.net - 如何在 Asp.net MVC 4 应用程序中使用 SimpleMemberShip Provider

javascript - 如果数组中的任何项 === x 则返回 false

javascript - 检查 jQuery "Fancybox"是否已经注册?

javascript - 如何检测何时在输入字段中动态插入文本

javascript - 如何限制特殊字符和 (/,*,+) only

javascript - 如何在aspx页面上挂接默认的beforeunload事件?

c# - 如何在 dotnetnuke 框架中创建 Web 应用程序?

c# - 通过 C# 确定文件路径是否有效且存在

r - 按组添加ID列