jQuery UI Datepickerを含むフォームがあり、jQueryValidationプラグインを使用して検証されます。
日付ピッカーは、以下を使用して作成されます。
$("#dob").datepicker({
changeMonth: true,
changeYear: true,
dateFormat: "dd/mm/yy",
onSelect: function (){
this.focus();
},
});
ただし、検証プラグインは、dd / mm / yyyyを使用して検証する必要がある場合、米国形式で検証するようです。これは、任意の月の12日を超える日付は無効と見なされることを意味します。
周りを見回して、正規表現を使用して日付を検証する別の方法を追加する方法を見つけました。
$.validator.addMethod(
"australianDate",
function(value, element) {
return value.match(/^(0?[1-9]|[12][0-9]|3[01])\/(0?[1-9]|1[012])\/((19|20)\\d\\d)$/);
},
"Please enter a date in the format dd/mm/yyyy."
);
次に、これがルールに追加されます。
dob:{
required:true,
australianDate: true
},
しかし、これはどの入力でも失敗するようです。
私が使用している正規表現は、過去にphpで使用したものであり、一般的な(any2numbers / any2numbers / any4numbers)式よりも少し正確であり、JavaScriptでも使用できるようにしたいと思います。
javascriptの正規表現はphpとは異なる形式である必要がありますか?私が間違っているところです。
どんな助けでも大歓迎です。