jQuery如何验证特定字符的输入并遵循特定模式

时间:2019-06-25 08:12:48

标签: javascript jquery regex string date

我有一个输入字段,应该在其中输入用户的出生日期。我要使用的模式例如是24-06-2019。因此,现在我要进行某种验证,如果用户输入了错误的模式,则应该发出某种警报。我该如何实现?

这是我到目前为止所得到的:

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

    // some validation here?
});

2 个答案:

答案 0 :(得分: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");

答案 1 :(得分:-1)

您可以使用非常简单的正则表达式:

const ex = /^[0-3]{1}[0-9]{1}-[01]{1}[0-9]{1}-[0-9]{4}$/
console.log(ex.test('24-06-2019')) // true
console.log(ex.test('24-26-2019')) // false
console.log(ex.test('44-06-2019')) // false
console.log(ex.test('01-01-2019')) // true

  

请注意,这并不涵盖所有边缘情况,但涵盖了month >= 20day >= 40