【问题标题】:Textbox only date validation using javascript仅使用 javascript 的文本框日期验证
【发布时间】:2019-11-12 08:37:30
【问题描述】:

厌倦了验证文本框只允许日期格式。如果我输入文本或带有数字的文本或任何其他没有日期格式的内容,我想显示错误消息,例如“请输入 mm/dd/yyyy 格式”。文本框应该只允许这个 mm/dd /yyyy 格式。如何使用 javascript 或 jquery 来实现

function isDate() {

     var txt = document.getElementById("date").value; 
     var regEx = /^\d{4}-\d{2}-\d{2}$/;

     if(txt.match(regEx)){

     alert("Please enter date format mm/dd/yyyy");

     }else{

      alert("Thanks..You have entered correct date");

     }

   }

演示:http://jsfiddle.net/nrt76dsq/1/

【问题讨论】:

  • 您应该使用实际的date input 和form validation。
  • 否..我想使用正则表达式显示错误消息..那么你能编辑我的代码吗?
  • 正则表达式是进行日期验证的错误工具。同样在大多数情况下,您不应该强制执行某种日期格式。有些用户可能不熟悉 mm/dd/yyyy。

标签: javascript jquery


【解决方案1】:

这行得通!基本的 Javascript 验证!

function checkdate() {
  var input = document.getElementById("date");
  var validformat = /^\d{2}\/\d{2}\/\d{4}$/ //Basic check for format validity
  if (!validformat.test(input.value))
    alert("Invalid Date Format. Please correct and submit again.")
  else { //Detailed check for valid date ranges
    var monthfield = input.value.split("/")[0]
    var dayfield = input.value.split("/")[1]
    var yearfield = input.value.split("/")[2]
    var dayobj = new Date(yearfield, monthfield - 1, dayfield)
    if ((dayobj.getMonth() + 1 != monthfield) || (dayobj.getDate() != dayfield) || (dayobj.getFullYear() != yearfield))
      alert("Invalid Day, Month, or Year range detected. Please correct and submit again.")
    else
      alert("You have entered the valid date format!")
  }
}
<input type="text" id="date" name="date" placeholder="dd/mm/yyyy" />
<button onclick="checkdate()">Check</button>

【讨论】:

    【解决方案2】:

    试试看

    function isDate() {
         
             var txt = document.getElementById("date").value; 
             var regEx = /^\d{2}\/\d{2}\/\d{4}$/;
      
             if(!regEx.test(txt)){
             
             alert("Please enter date format mm/dd/yyyy");
             
             }else{
             
              alert("Thanks..You have entered correct date");
             
             }
        
    }
    <input type="text" id="date" name="date" value="dd/mm/yyyy" />
    <button onclick="isDate();">Check</button>
    
     

    【讨论】:

    • 我以为你只想要格式。此页面上积极讨论了验证。 stackoverflow.com/questions/15491894/…
    • @SJ_OWOW:: 如何仅将其用于 mm/dd/yyyy 格式? var dateReg = new RegExp(['^(?:(?:(?:0?[13578]|1[02])(\\/|-|\\.)31)', '\\1|( ?:(?:0?[1,3-9]|1[0-2])(\\/|-|\\.)(?:29|30)', '\\2))(? :(?:1[6-9]|[2-9]\\d)?\d{2})$|^(?:0?2(\\/|-|\\.)', ' 29\\3(?:(?:(?:1[6-9]|[2-9]\\d)?(?:0[48]|[2468][048]|', '[13579 ][26])|(?:(?:16|[2468][048]|[3579][26])00))))', '$|^(?:(?:0?[1- 9])|(?:1[0-2]))(\\/|-|\\.)', '(?:0?[1-9]|1\\d|2[0-8 ])\\4', '(?:(?:1[6-9]|[2-9]\\d)?\\d{2})$'].join(''),"g ");
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 2017-07-27
    • 2012-03-10
    • 1970-01-01
    • 2011-06-29
    • 2011-08-05
    • 1970-01-01
    相关资源
    最近更新 更多