1. ホーム
  2. javascript

[解決済み] 正規表現でdatetime形式(MM/DD/YYYY)を検証する [重複] [重複

2022-02-25 20:06:10

質問

私は、MM/DD/YYYYYという日付時間の形式を検証しようとしています。以下は、私がしようとしているコードです助けてください。

 function ValidateDate(testdate) {
        var Status
        var reg = /^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/g;
        if (!reg.test(testdate)) {
            Status = false;
        }
        return Status;
    }

解決方法は?

正規表現を以下のようなツールで試してみてください。 http://jsregex.com/ (たくさんあります)あるいは、より良いのはユニットテストです。

素朴な検証のために。

function validateDate(testdate) {
    var date_regex = /^\d{2}\/\d{2}\/\d{4}$/ ;
    return date_regex.test(testdate);
}

あなたの場合、(MM/DD/YYYY)で、1900年から2099年の間の年を検証するために、このように書きますね。

function validateDate(testdate) {
    var date_regex = /^(0[1-9]|1[0-2])\/(0[1-9]|1\d|2\d|3[01])\/(19|20)\d{2}$/ ;
    return date_regex.test(testdate);
}