【问题标题】:Jquery how to validate input on specific characters and to follow specific patternJquery如何验证特定字符的输入并遵循特定模式
【发布时间】:2019-11-07 00:40:30
【问题描述】:

我有一个输入字段,用户应该在其中输入他们的出生日期。我想使用的模式是例如24-06-2019。所以,现在我想做某种验证,如果用户输入了错误的模式,应该会有某种警报。我怎样才能做到这一点?

这是我目前得到的:

$('input[name="dateOfBirth"]').on("keyup", () => {
    let current_value = $('input[name="dateOfBirth"]').val();

    // some validation here?
});

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 在对keyup 事件实施验证之前,请考虑在输入有效日期之前检查将失败多次。最好在提交表单或单击按钮时执行此检查。最好使用date input 而不是验证输入。

标签: javascript jquery regex string date


【解决方案1】:

非常简单的正则表达式:

if (/\d{2}-\d{2}-\d{4}/.test(current_value)) {
    //Date is of correct format
}

如果您想验证日期本身,则只需创建一个新日期并检查它是否无效:

const validDate = new Date();
const invalidDate = new Date("abc");
console.log(validDate == "Invalid Date");
console.log(invalidDate == "Invalid Date");

【讨论】:

  • 使用new Date(string) 中的内置解析器是验证日期的糟糕方法。第一步是正确解析输入字符串(如果需要,一个简单的函数或库就足够了),然后在与输入值进行比较时验证生成的 Date 对象。
猜你喜欢
  • 2018-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多