3

このスクリプトを YYYY-MM-DD の形式で使用して日付を検証する必要がありますが、完全に機能していないようです。私が使用している正規表現を使用すると、ユーザーは正しい場所にダッシュを付けて 8 つではなく、ダッシュを付けずに 10 個の数字を入力できます。これを修正するためにスクリプトを変更する方法はありますか?

jQuery.validator.addMethod("date", function(date, element) {
                return this.optional(element) || date.match(/^[-0-9]{10}$/);
            }, "Please specify a valid date");
4

2 に答える 2

10

正規表現が間違っています。

代わりにこれを使用できます:

^\d{4}-((0\d)|(1[012]))-(([012]\d)|3[01])$

したがって、次のようになります。

return this.optional(element) || date.match(/^\d{4}-((0\d)|(1[012]))-(([012]\d)|3[01])$/);
于 2013-05-14T13:44:25.433 に答える
0

これにより、正しい場所にダッシュがある正確な形式が検証されます。

/^(\d{4})-(\d\d)-(\d\d)$/

妥当な年/月/日の値を確実に検証するためのより完全な検証

/^(19|20)\d\d-(0\d|1[012])-(0\d|1\d|2\d|3[01])$/
于 2013-05-14T13:44:05.043 に答える