Javascript 自动添加'/';约会

Javascript 自动添加'/';约会,javascript,date,Javascript,Date,我找到了下面的代码,它会自动将“/”添加到带有日期的输入中。我想知道是否有一种方法可以不加一个“/”而加一个“-”?我不太擅长javascript,如果有任何帮助,我将不胜感激 函数getAge(){ document.getElementById(“dob”).value=document.getElementById(“dob”).value.replace(/^(\d\d)(\d)$/g,$1/$2')。replace(/^(\d\d\/\d)(\d+)/g,$1/$2')。repla

我找到了下面的代码,它会自动将“/”添加到带有日期的输入中。我想知道是否有一种方法可以不加一个“/”而加一个“-”?我不太擅长javascript,如果有任何帮助,我将不胜感激


函数getAge(){
document.getElementById(“dob”).value=document.getElementById(“dob”).value.replace(/^(\d\d)(\d)$/g,$1/$2')。replace(/^(\d\d\/\d)(\d+)/g,$1/$2')。replace(/[^\d\/]/g');

这可能就是您想要的。我对您的原始代码进行了以下调整:

  • 使用变量调用“dob”元素以保存代码行
  • 添加了事件侦听器,因为这比在HTML中声明它更可取(高级开发人员如是说)
  • 将“keyup”事件更改为“keydown”,因为我认为它更可靠
  • 将maxlength添加到输入中,以便用户添加的数字不能超过日期应有的数字
  • 在输入中添加占位符,以便用户知道他们应该能够输入什么格式
  • 将正则表达式更改为搜索-而不是/
注意:我没有添加错误检查,以确保用户输入的“真实”日期(即“02-31-2018”)不会被捕获

var-dob=document.getElementById(“dob”);
dob.addEventListener(“键控”,getAge);
函数getAge(){
dob.value=dob.value.replace(/^(\d\d)(\d)$/g,“$1-$2”)。replace(/^(\d\d\-\d\d)(\d+)$/g,“$1-$2”)。replace(/[^\d\-]/g,”);
}

非常感谢!我如何对日期进行错误检查?这不是特别有用。如果我键入“01-01-2018”,然后将光标放在年初(使用光标键或指针),然后按两次delete,我会得到“01-01-201”光标在年底时。我确信还有许多其他情况下它会出现错误,例如,如果我粘贴一个值,也可能会删除所有的破折号,并且没有添加破折号。如何使其更具功能