10進数入力の正規表現が必要です。これは、小数点またはコンマの前に4桁、小数点/コンマの後に2桁を使用できます。小数なしの5桁の数字は無効です。nullも受け入れることができます。
正しい値は次のとおりです。
1、1111、2222.56、0.99、9999.5
無効
88888、8.888、
検証ショーには、小数とともにコンマも含まれます。
可能であれば、式も説明してください。
Regex.IsMatch(strInput, @"[\d]{1,4}([.,][\d]{1,2})?");
そして説明する:
[\d]{1,4} any character of: digits (0-9) between 1 and 4 times
[.,] any character of: '.', ','
[\d]{1,2} any character of: digits (0-9) between 1 and 2 times
(...)? match the expression or not (zero or one)
^-?(0|[1-9]\d{0,3})([,\.]\d{1,2})?$
カンマの前:
^-文字列の先頭
-?-負の符号が0または1つある可能性があります
0-小数は最初に単一のゼロのみで始まる場合があります...
| - また ...
[1-9]-1から9までの任意の数字
\d{0,3}-その後に任意の3桁
カンマ後:
[、。]-「、」または「。」が存在する場合があります。
\d{1,2}-1桁または2桁が続く
(...)?-ゼロまたは1回
$-文字列の終わり
[0-9]{1,4}(\.[0-9]{1,2})?
これは、1〜4桁、およびオプションで小数点と1〜2桁の両方を意味します。
この正規表現\d{4}[,\.]\d{2}
または\d+([,\.]\d+)?
任意の小数に使用します
次のコードを使用して、Stirng値に小数点が含まれていることを確認するためのコードを実行できます。
Dim Success As Boolean
If text.Contains(".") Then
Dim result As Integer = Split(text, ".")(1)
If result > 0 Then
Success = True 'Containing Decimal Points greater than
Else
Success = False 'Containing "0" as Decimal Points
End If
End If
Return Success