2012-03-11 5 views
0

私は、VBでユーザ入力を検証するために、この「### ##」のような5つの数字、3つの数字、1つの隙間、2つの数字を書き込む必要があります。どのようにこれを最善の方法でやっていますか?Visual Basicで "### ##"数値形式を検証する方法は?

ありがとう、マイク。

+0

何VBはこれですか? –

+0

正規表現を探しています。使用しているVBのバージョンについては、より具体的なものでなければならないので、より具体的な回答を得ることができます。 – DOK

+0

バージョンは2010年です。 – Mike

答えて

0

正規表現?例えば"\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で可能だと思うが、あなたのために例がありません。

+0

ありがとう、私はそれをどのようにして正確に使用できますか? – Mike

+0

@マイク私はあなたが検証しているもの、検証コンテキスト、使用しているVBのバージョンに関するさらに詳しい情報が必要です。 MVCでVBについて話している場合は、たとえば、モデルでRegularExpressionAttributeを使用できます。コードで実行している場合は、VB.NETを使用している場合はSystem.Text.RegularExpressions.Regexクラスを使用できます。 – tvanfosson

1

コードの文字列を自動的にフォーマットします。これは、簡単にユーザー

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 
+1

さらに優れています:空白だけでなく長さを確認する前に数字以外のものを削除してください。 –

+0

これは 'Regex.Replace(s、" [^ 0-9] "、" ")'や 'Regex.Replace(s、" \ D "、" ") –

1

が過度に単純化するかもしれないが、私はちょうどマスクされた入力ボックスを使用すると思いになります。 Likeオペレータのために完璧になる

1

If "123 45" Like "### ##" Then 
関連する問題