C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: 0チェックの正規表現


(過去ログ 86 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■51551 / inTopicNo.1)  0チェックの正規表現
  
□投稿者/ たかだ (2回)-(2010/07/08(Thu) 17:32:43)

分類:[C#] 

少数一位以下まで入力可能で値が0以外(0.0や0)ならOKにするチェックを作りたいです。
以下を試したところ
0.0や0はチェックにかかりません。

if (!Regex.IsMatch(((TextBox)sender).Text, "^[0-9]+[.]?[0-9]{0,1}$"))
{
return; //Error
}

以下のように変更すると、今度は0.1までエラーになってしまいます。
if (!Regex.IsMatch(((TextBox)sender).Text, "^[1-9]+[.]?[0-9]{0,1}$"))
{
return; //Error
}

どうすればよいのでしょうか?

引用返信 編集キー/
■51552 / inTopicNo.2)  Re[1]: 0チェックの正規表現
□投稿者/ こくぶん (64回)-(2010/07/08(Thu) 18:10:56)
こくぶん さんの Web サイト
No51551 (たかだ  さん) に返信
なぜ正規表現なのでしょうか?
↓こんなんじゃダメ?

var text = ((TextBox)sender).Text;
double d;
if (!Double.TryParse(text, out d))
{
  return; // Error: そもそも数値じゃない!
}
if (d == 0)
{
  return; // Error: 0 はダメ!
}

# 変換先が double でいいかは置いといて。


どうしても正規表現じゃなきゃダメなら、
if (Regex.IsMatch(((TextBox)sender).Text, "^0(\\.0+)?$"))
{
  //...
}
とか。

引用返信 編集キー/
■51582 / inTopicNo.3)  Re[2]: 0チェックの正規表現
□投稿者/ たかだ (3回)-(2010/07/10(Sat) 11:02:50)
No51552 (こくぶん さん) に返信
> ■No51551 (たかだ さん) に返信
> なぜ正規表現なのでしょうか?
> ↓こんなんじゃダメ?
>
> var text = ((TextBox)sender).Text;
> double d;
> if (!Double.TryParse(text, out d))
> {
> return; // Error: そもそも数値じゃない!
> }
> if (d == 0)
> {
> return; // Error: 0 はダメ!
> }
>

とりあえず、上記と範囲チェックですることにしました。

正規表現だと、なかなかうまく行きませんね。
Validatorでも、使用したかったの正規表現で書ければ
と思ったのです。

ありがとうございました。
解決済み
引用返信 編集キー/
■51583 / inTopicNo.4)  Re[3]: 0チェックの正規表現
□投稿者/ よねKEN (539回)-(2010/07/10(Sat) 11:28:40)
よねKEN さんの Web サイト
No51582 (たかだ さん) に返信
> 正規表現だと、なかなかうまく行きませんね。

こくぶんさんの回答で行けるはずですが、何かうまくいかなかったのでしょうか?

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -