JavaScriptで正規表現を使用して日付を検証しています。私が使用している正規表現は
/^(((((0?[1-9])|(1\d)|(2[0-8]))\/((0?[1-9])|(1[0-2])))|((31\/((0?[13578])|(1[02])))|((29|30)\/((0?[1,3-9])|(1[0-2])))))\/((20[0-9][0-9])|(19[0-9][0-9])))|((29\/02\/(19|20)(([02468][048])|([13579][26]))))$/
これは日付と正確に一致しますが、$ を使用して文字列の末尾をマークしているにもかかわらず、1/1/2001ff などの値と一致します。しかし、ff1/1/2001 のような値を指定すると、無効になります。したがって、文字列の開始を考慮して、文字列の末尾部分を無視します。
誰でもこの理由を知っていますか。