私は、VBでユーザ入力を検証するために、この「### ##」のような5つの数字、3つの数字、1つの隙間、2つの数字を書き込む必要があります。どのようにこれを最善の方法でやっていますか?Visual Basicで "### ##"数値形式を検証する方法は?
ありがとう、マイク。
私は、VBでユーザ入力を検証するために、この「### ##」のような5つの数字、3つの数字、1つの隙間、2つの数字を書き込む必要があります。どのようにこれを最善の方法でやっていますか?Visual Basicで "### ##"数値形式を検証する方法は?
ありがとう、マイク。
正規表現?例えば"\d{3}\s\d{3}"
、正規表現のクラスに
...
Public Function Validate(ByVal data as String) as Boolean
Static ValidationRegex as Regex = new Regex("^\d{3}\s\d{3}$",RegexOptions.Compiled)
Validate = ValidationRegex.IsMatch(data)
End Function
を使用してRegularExpressionAttribute
Public Class Model
<RegularExpression("^\d{3}\s\d{3}$", ErrorMessage:="You must enter the date as ### ##")>_
Public Property Data as String
'Getter and setter logic
End Property
End Class
を使用して、私はそれがVB6で可能だと思うが、あなたのために例がありません。
ありがとう、私はそれをどのようにして正確に使用できますか? – Mike
@マイク私はあなたが検証しているもの、検証コンテキスト、使用しているVBのバージョンに関するさらに詳しい情報が必要です。 MVCでVBについて話している場合は、たとえば、モデルでRegularExpressionAttributeを使用できます。コードで実行している場合は、VB.NETを使用している場合はSystem.Text.RegularExpressions.Regexクラスを使用できます。 – tvanfosson
コードの文字列を自動的にフォーマットします。これは、簡単にユーザー
Dim s As String
Dim n As Integer
s = textBox1.Text.Replace(" ","") ' Remove spaces
If s.Length = 5 AndAlso Int32.TryGetValue(s, n) Then
textBox1.Text = n.ToString("000 00")
Else
MessageBox.Show("You must enter five digits!")
EndIf
さらに優れています:空白だけでなく長さを確認する前に数字以外のものを削除してください。 –
これは 'Regex.Replace(s、" [^ 0-9] "、" ")'や 'Regex.Replace(s、" \ D "、" ") –
が過度に単純化するかもしれないが、私はちょうどマスクされた入力ボックスを使用すると思いになります。 Like
オペレータのために完璧になる
:
If "123 45" Like "### ##" Then
何VBはこれですか? –
正規表現を探しています。使用しているVBのバージョンについては、より具体的なものでなければならないので、より具体的な回答を得ることができます。 – DOK
バージョンは2010年です。 – Mike