JavaScript - 仅使用vanilla js进行日期屏蔽

时间:2018-03-26 20:18:28

标签: javascript html regex

我被分配了一个任务,我只能使用vanilla javascript。我甚至无法直接访问html,因为他们使用某种iframe。

方案

当用户模糊输入时,请格式化日期 结束日期格式 - 月/日/年(00/00/0000)

代码应格式化这些用户方案。

  1. 替换' - '用' /'如果用户使用' - '分开日期(我有)

  2. 如果用户忘记放置' 0'对于一天或一个月,直到第9个月或第9天,自动添加一个' 0'在一天或一个月或两者之前(例如,1999年9月9日至09/09/1999)

  3. 如果用户每年仅输入2位数,则代码应假定为2000年,并在年度前加20(例如:2015年9月9日至09/09 / 2015)

  4. 我怎样才能使用我的js结构和vanilla js实现2,3?记得我不能编辑HTML所以不能像value =" this.value" ,或者时刻js等

    
    
    function execute () {
      var new_date = document.getElementById('date_val').value;
      var j = format(new_date);
      document.getElementById('date_val').value = j; 
    }
    
    function format(incoming_date) {
      
      var d = new Date(incoming_date);
      console.log('new date', d)
      day = d.getDate();
      month = d.getMonth() + 1;
      year = d.getFullYear();
      return (String(month).length == 1 ? '0' + month : month) + '/' + (String(day).length == 1 ? '0' + day : day) + '/' + year;
    };
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>Document</title>
    
    
    </head>
    
    <body>
    date: <input type="text" id="date_val" onblur="execute()"> 
      
      <!-- <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
        crossorigin="anonymous"></script>
    
      <script src="./js/test.js"></script> -->
      <script src="./js/test.js"></script>
    </body>
    
    </html>
    &#13;
    &#13;
    &#13;

1 个答案:

答案 0 :(得分:1)

您可以使用Javascript的Date,它可以解决您的主要0问题以及-问题,如果是20,则会填写var d = new Date('9/3/1999'); var f = new Date('1-1-2005'); var g = new Date('8/8/08'); function formatDate(d) { day = d.getDate(); month = d.getMonth() + 1; year = d.getFullYear(); return (String(month).length == 1 ? '0' + month : month) + '/' + (String(day).length == 1 ? '0' + day : day) + '/' + year; } console.log(formatDate(d)); console.log(formatDate(f)); console.log(formatDate(g));的日期给出了缩写年份。

<asp:TemplateField ItemStyle-HorizontalAlign="Center">
    <HeaderTemplate><center>TODOS<br /> <asp:CheckBox ID="chk_Todos" runat="server" AutoPostBack="True" OnCheckedChanged="chk_Todos_CheckedChanged"  /></center></HeaderTemplate>
    <ItemTemplate><asp:CheckBox ID="chk_Seleccionar" runat="server"/></ItemTemplate>
</asp:TemplateField>