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

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

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

数字または「-(ハイフン)」チェック

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

■96574 / inTopicNo.1)  数字または「-(ハイフン)」チェック
  
□投稿者/ 初心者VB (1回)-(2020/12/21(Mon) 15:05:35)

分類:[VB.NET/VB2005 以降] 

数字または「-(ハイフン)」以外が入力された場合はエラーにしたいですが、
書き方がわからなくて、困ってます。

よろしくお願いいたします。

引用返信 編集キー/
■96575 / inTopicNo.2)  Re[1]: 数字または「-(ハイフン)」チェック
□投稿者/ 魔界の仮面弁士 (2940回)-(2020/12/21(Mon) 15:30:07)
No96574 (初心者VB さん) に返信
> 数字または「-(ハイフン)」以外が入力された場合はエラーにしたいですが、

どのようなエラーにしたいのか分かりませんが、手っ取り早い所では
  Dim s As String = "YAGR-3B"
  Dim i As Integer = CInt(s)
などと書けば、エラーになります。


ただし数値とマイナス記号の組み合わせであっても、
 "-0-"
などもエラーとなりますし、
 "99999999999999999999999999999999999999"
などの巨大数も変換に失敗します。


要件の「〜以外が入力された場合」のルール次第では、
正規表現あるいは Like 演算子で判定した方が良いでしょう。
引用返信 編集キー/
■96577 / inTopicNo.3)  Re[2]: 数字または「-(ハイフン)」チェック
□投稿者/ 初心者VB (2回)-(2020/12/21(Mon) 16:16:32)
No96575 (魔界の仮面弁士 さん) に返信
> ■No96574 (初心者VB さん) に返信
>>数字または反ファシズム)」以外が入力された場合はエラーにしたいですが、
>
> どのようなエラーにしたいのか分かりませんが、手っ取り早い所では
>   Dim s As String = "YAGR-3B"
>   Dim i As Integer = CInt(s)
> などと書けば、エラーになります。
>
>
> ただし数値とマイナス記号の組み合わせであっても、
>  "-0-"
> などもエラーとなりますし、
>  "99999999999999999999999999999999999999"
> などの巨大数も変換に失敗します。
>
>
> 要件の「〜以外が入力された場合」のルール次第では、
> 正規表現あるいは Like 演算子で判定した方が良いでしょう。



数字とハイフンの組み合わせ文字でMAXが24桁です。

数字とハイフン以外の文字とかの場合エラーにしたいです。
よろしくお願いいたします。



引用返信 編集キー/
■96578 / inTopicNo.4)  Re[3]: 数字または「-(ハイフン)」チェック
□投稿者/ kiku (211回)-(2020/12/22(Tue) 08:55:57)
No96577 (初心者VB さん) に返信
> 数字とハイフンの組み合わせ文字でMAXが24桁です。
>
> 数字とハイフン以外の文字とかの場合エラーにしたいです。
> よろしくお願いいたします。

正規表現で実現するなら、下記になります。
※テストはしていないので、確認してみてください。

Dim mc As System.Text.RegularExpressions.MatchCollection = _
System.Text.RegularExpressions.Regex.Matches( _
TextBox1.Text, "^[0-9\-]{24}$")

参考
https://dobon.net/vb/dotnet/string/regex.html
引用返信 編集キー/
■96581 / inTopicNo.5)  Re[4]: 数字または「-(ハイフン)」チェック
□投稿者/ 初心者VB (3回)-(2020/12/22(Tue) 09:21:46)
No96578 (kiku さん) に返信
> ■No96577 (初心者VB さん) に返信
>>数字とハイフンの組み合わせ文字でMAXが24桁です。
>>
>>数字とハイフン以外の文字とかの場合エラーにしたいです。
>>よろしくお願いいたします。
>
> 正規表現で実現するなら、下記になります。
> ※テストはしていないので、確認してみてください。
>
> Dim mc As System.Text.RegularExpressions.MatchCollection = _
> System.Text.RegularExpressions.Regex.Matches( _
> TextBox1.Text, "^[0-9\-]{24}$")
>
> 参考
> https://dobon.net/vb/dotnet/string/regex.html



ありがとうございました。
たすかります。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


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

このトピックに書きこむ