- PR -

ValidationExpressionのコントロールで日付チェック。。。

投稿者投稿内容
hope
会議室デビュー日: 2005/05/08
投稿数: 2
投稿日時: 2005-05-08 19:07
はじめまして。初めてスレッドさせていただきます。
ご存知の方がいらっしゃいましたらぜひご教授をお願い申し上げます。
現在 asp.netを使用し、サーバ側の検証コントロールValidationExpressionを使用して
日付チェックをしようとしているのですが私が作成した正規表現では
上手に動作せず、悩んでいました。
ぜひご教授お願い申し上げます。
/[1-21-2][0-90-9]{3}[\//][010-1]{0,1}[0-90-9][\//][0-30-3]{0,1}[0-90-9]/
という正規表現を用いて、yyyy/mm/ddの日付をチェックを行おうとしております。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-05-08 21:49
 私はDate.Parseメソッドにかけて例外をキャッチしています。ダメ?

 MSDNの正規表現を説明したところに、米式の日付チェックがありませんでした?
_________________
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2005-05-09 00:25
RegularExpressionValidatorですよね?ValidationExpressionプロパティに
上記の先頭と末尾にあるスラッシュは実際には書いてないですよね?
その正規表現でやってみたところとりあえず正常に動作しているように見えましたが、
どのような入力の場合に「上手に動作」しないのでしょうか。
2005/0/0とか2005/18/36などが通ってしまうのはよいのですよね?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-05-09 09:19
ある程度しかできませんよね?

参考リンク

  クライアント側での入力チェックについて



_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
hope
会議室デビュー日: 2005/05/08
投稿数: 2
投稿日時: 2005-05-09 10:08
おはようございます。
そうですよね。ある程度しか、クライアント側での検証は無理だと思いました。
なるべく簡略的にと考えておりまして、validatorexpressionコントロールで済ませたいと思い実装しておりました。

正規表現を用いたときにはもちろん/抜きで実装しておりますし、yyyy/mm/ddの形であれば、どっちかというと、yyyy/mm/ddの形を検証できればOKでしたので。。。

厳重に検証するには、jittaさんのおっしゃる通り、DATETIME.PARSEを用いて、サーバ側での検証が一番ベストだとおもいました。
なんとか、無事に実装できました!ご教授まことにありがとうございました。
にしざき
ぬし
会議室デビュー日: 2003/06/30
投稿数: 304
投稿日時: 2005-05-09 10:15
未検証ですが、
日付チェックの正規表現
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-05-09 11:07
こんにちは、じゃんぬ です。

引用:

厳重に検証するには、jittaさんのおっしゃる通り、DATETIME.PARSEを用いて、サーバ側での検証が一番ベストだとおもいました。



というより、サーバ側での検証は絶対やっておかなくてはいけませんよね?
クライアント側での検証が完璧であれば、やらなくて良いと思っていませんか?

# 色んなサイトによくある、コンボによる選択だと結構楽かもしれませんね。
# ユーザビリティは著しく低下すると思いますけど... (^^)



_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-05-09 22:50
> # 色んなサイトによくある、コンボによる選択だと結構楽かもしれませんね。
 2月31日とか?(笑)


 クライアント側では、JavaScriptでDate型に変換できるかどうかで検証できます。ただし、4月31日が3月1日となってしまうのが難点。これを文字列に変換し、元の文字列と比較して検証しています。
# 最初に書けって(^_^;

_________________

スキルアップ/キャリアアップ(JOB@IT)