文字列が現在の基準に適合するかどうかをテストする最良の方法を見つけようとしています。基本的に、私はそのように来る日付を持っています:
1/17/2013 12:00 AM
月と日のフィールドは 1 桁または 2 桁ですが、年は常に 4 桁です。時間は 1 桁または 2 桁です。分フィールドは常に 2 桁です。たとえば、次の例も当てはまります。
10/1/2013 1:00 AM
現在、私はこの正規表現を持っていますが、機能していないようです:
/^(0[1-9]|1[0-2])\/(0[1-9]|[1-2][0-9]|3[0-1])\/(20[1-9][2-9]) (0[1-9]|1[0-2]):([0-5][0-9]) (am|pm)$/
私はそれを次のように使用しています:
$('input[name=targetMe]').each( function() {
alert('start')
if(/^(0[1-9]|1[0-2])\/(0[1-9]|[1-2][0-9]|3[0-1])\/(20[1-9][2-9]) (0[1-9]|1[0-2]):([0-5][0-9]) (AM|PM)$/.test($(this).val())) {
alert('passes')
} else {
alert('dont')
}
});
現在の正規表現に何か問題がありますか、それとも別の方法で使用する必要がありますか、それともこれよりも優れた解決策がありますか?