Javascript 将2位数年份转换为4位数年份

Javascript 将2位数年份转换为4位数年份,javascript,jquery,html,asp.net-mvc,Javascript,Jquery,Html,Asp.net Mvc,我们有一个条目表单,它为用户提供了一个日历下拉列表,但也允许用户手动输入数据。我们发现,如果一个人输入一个两位数的年份,年份将改为1912年,而不是2012年(日期不能是过去)。我有没有办法: 检查他们是否输入了2位数的年份,并将其转换为4位数的年份,或 如果他们输入2位数的年份,请给他们一个错误 这是一个HTML表单,我还使用jQuery处理其他一些东西 我要澄清的是,他们输入的日期作为一个整体,2012年1月1日或2012年1月1日是有效的。2012年1月1日和2012年1月1日并非如此。您

我们有一个条目表单,它为用户提供了一个日历下拉列表,但也允许用户手动输入数据。我们发现,如果一个人输入一个两位数的年份,年份将改为1912年,而不是2012年(日期不能是过去)。我有没有办法:

  • 检查他们是否输入了2位数的年份,并将其转换为4位数的年份,或
  • 如果他们输入2位数的年份,请给他们一个错误
  • 这是一个HTML表单,我还使用jQuery处理其他一些东西


    我要澄清的是,他们输入的日期作为一个整体,2012年1月1日或2012年1月1日是有效的。2012年1月1日和2012年1月1日并非如此。

    您可能需要向我们展示一些代码。事实上,这样的基本要求满足了您的第二个要求:

    if ($('#yearInput').val().length() < 4) {
      alert('You must enter 4 digits');
    }
    
    if($('#yearInput').val().length()<4){
    警报(“您必须输入4位数字”);
    }
    
    最简单的是regexp,因为它也会使非数值无效

    ​var s = $("#something").val();
    
    if (!/^\d{4}​​​​​​​​​​​​​​​​​​​​​​​$/.test(s)) {
       alert ("Thats not a 4 digit number")​​​​​​​​​​​
       return;
    

    您可以发布转换2位数年份的代码吗?您可以轻松地测试两位数年份:$(“#元素_id”)。长度==4{做点什么}。date.js是一个出色的库,用于日期验证等功能,并具有区域设置意识。由于有太多变量可用于输入日期,因此我还没有找到任何答案。您是否尝试引入下拉列表或选择日期控制器?请参见第一句:“我们有一个输入表单,它为用户提供了一个日历下拉列表,但也允许用户手动输入数据。”对不起,我添加了关于日期输入方式的说明。不过,正则表达式可以判断它是/\d{1,2}\/\d{1,2}\/\d{4}/还是否。当您说“…”时,您已经有效地指定了要测试的正则表达式。。。2012年1月1日或2012年1月1日有效。2012年1月1日和2012年1月1日并非如此。“再说一遍,我很喜欢正则表达式。我还假设您的控件将输出有效日期,因此通过测试传递其输出可能有点多余,但不太糟糕。谢谢。我对正则表达式感到不舒服,所以我的大脑不去那里。不过我认为这会奏效。在alex的回答和@jrnewman42的评论之间,我得到了我所需要的。对不起,我补充了关于日期输入方式的澄清。