日付のパターンを一致させるのに苦労しています。次のいずれかの日付が有効です。
- 121212
- 4 9 12
- 5-3-2000
- 62502
- 3/3/11
- 09-08-2001
- 8 6 07
- 12 10 2004
- 4-16-08
- 3/7/2005
この日付の一致が非常に難しいのは、年が 4 桁である必要がないことです (2 桁の年は 21 世紀であると見なされます、つまり 02 = 2002)。 1 桁の月で、日付がスペース、ダッシュ、またはスラッシュで区切られている場合と区切られていない場合があります。
これは私が現在持っているものです:
/((((0[13578])|([13578])|(1[02]))[\/-]?\s*(([1-9])|(0[1-9])|([12][0-9])|(3[01])))|(((0[469])|([469])|(11))[\/-]?\s*(([1-9])|(0[1-9])|([12][0-9])|(30)))|((2|02)[\/](([1-9])|(0[1-9])|([12][0-9])))[\/-]?\s*(20[0-9]{2})|([0-9]{2}))/g
これはほとんどうまくいきますが、今のところ、日付と月の長さを想定しているかどうか正確にはわかりません. たとえば、 の場合、月がではなく で121212
あると想定している可能性があります。また、 と を印刷するとなぜか同じ値になってしまいます。の場合、は、は、は です。しかし、私はなりたいだけです。1
12
$1
$2
121212
$1
1212
$2
1212
$3
12
$1
121212