正規表現を検索するのは、日付が最初の28日にある場合のみです。これはASP.NETのバリデータコントロール用です月の最初の28日に一致する正規表現
3
A
答えて
18
Regexではこれをしないでください。日付は、国によって異なっています。代わりにDateTime.TryParseルーチンを使用します。
DateTime parsedDate;
if (DateTime.TryParse(dateString, out parsedDate) && parsedDate.Day <= 28)
{
// logic goes here.
}
は、正規表現は、ほぼgolden hammer入力検証のですが、この例では、それは間違った選択です。
2
これは正規表現にはうってつけの作業ではないと思います。
私は、ライブラリ関数(DateTime.Parse for .NET)を使用して日付を解析し、その日のコンポーネントをチェックします。とにかくライブラリ機能の半分が複製されています。
1
なぜそれを日付データ型に変換してその日をチェックするのはなぜですか?正規表現を使用すると、それを実行することができますが、正規表現は過度に複雑になります。
1
([1-9]|1\d|2[0-8]) // matches 1 to 28 but woudn't allow leading zeros for single digits
(0?[1-9]|1\d|2[0-8]) // matches 1 to 28 and would allow 01, 02,... 09
(\ dは任意の数字と一致する場合は、あなたの正規表現エンジンがそれをサポートしていない場合は、[0-9]を使用します。)
はまた、私はのいずれかを使用することになり、質問What is the regex pattern for datetime (2008-09-01 12:35:45) ?
1
を参照してください。 DateTime.TryParse技法と併せてCustomValidator
関連する問題
- 1. 最初に一致する正規表現で一致した正規表現を最初に一致する正規表現
- 2. 正規表現:最初に出現するまで一致
- 3. 正規表現の一致日
- 4. 最初の一致後に正規表現が進まない
- 5. 正規表現で最初の単語を一致させる
- 6. grep正規表現の行の最初の一致のみ
- 7. 正規表現の最初の文字が一致しない
- 8. 正規表現のディレクトリパスに一致する正規表現
- 9. 正規表現以外の日付と一致する正規表現
- 10. Java正規表現最長一致
- 11. 正規表現に一致する正規表現(CTLDループ)
- 12. 正規表現に一致する正規表現
- 13. 正規表現に一致する正規表現
- 14. BASHの正規表現で週の日に一致する
- 15. 正規表現のURLを一致させる正規表現
- 16. 正規表現と一致する正規表現2.3
- 17. 正規表現と一致する正規表現
- 18. 正規表現での正規表現の一致値
- 19. 正規表現一致
- 20. 正規表現一致%\%
- 21. 正規表現を最大2語と一致させる正規表現
- 22. 正規表現に一致する最後の文字
- 23. 正規表現に一致するURL
- 24. 正規表現に一致するタグ
- 25. 正規表現に一致するグループ
- 26. グループに一致する正規表現
- 27. この正規表現で最初の一致を無視する方法
- 28. 正規表現で特定の最初の一致を取得する
- 29. 正規表現に一致しない正規表現
- 30. 正規表現を一致させる正規表現