javascript中的用户输入日期验证

时间:2020-09-01 12:42:40

标签: javascript

我有一个文本框,并希望确保以YYYYMMDD格式输入日期。下面将停止所有其他字符,然后输入数字。我的Javascript生锈失败,如何确保输入到文本框中的文本也以“ 202”开头

function chkNum(event, msg) {
    if (!(event.which >= 48 && event.which <= 57)) {
        document.getElementById(msg).innerHTML = "Invalid date format";
        return false;
    } else {
        document.getElementById(msg).innerHTML = "";
        return true;
    }
}
<input name="remdel<%=orderno%>" type="number" min="0" step="1" id="remdel<%=orderno%>" value="" size="10" onkeypress="return chkNum(event,'error')"

1 个答案:

答案 0 :(得分:0)

为什么不使用正则表达式。 SO上有太多可用资源和许多奇特的方式。

这是根据您的要求的基本非生产指南: 它需要一些工作,我已经将正则表达式分开以提供清晰度... 您还可以添加检查以确保第5位和第6位数字介于1到12之间,并且第7位和第8位数字不大于31,只是为了使其更加简单。

<html>
    <head>
        <title></title>
    </head
   <body>
       <input id="txtDate" type="text" />
       <span id="lblResult"></span>

       <script type="text/javascript">
           function Validatekey(e) {
     
           // Get the key that was pressed.
           // Add the key pressed to our input because it technically isnt there until after this method completes
           var dtValue = document.getElementById("txtDate").value + e.key;
     
           // Check that user pressed a number ie. 0 1 2 3 4 5 6 7 8 9
           if (!new RegExp("^[0-9]+$").test(dtValue)) {
               // Regect if not a number then reject.
               e.preventDefault();
           }
     
           // Check for 8 digits
           if (!new RegExp(/^[0-9]{1,8}$/).test(dtValue)) {
               // Regect if not a number then reject.
               e.preventDefault();
           }
     
           // Check if starts with 202 and the rest of the number
           if (!new RegExp(/^(202)([0-9]{5})$/).test(dtValue)) {
               document.getElementById("lblResult").innerHTML = false;  
           }else{ document.getElementById("lblResult").innerHTML = true;  }
     
           }
           // Attach event handler to our input
          document.getElementById("txtDate").addEventListener("keypress", Validatekey);
        </script>
    </body>
</html>