1

これは私の正規表現です:

    Dim vbRegX As Object, vbRegXMatch As Object
    Set vbRegX = CreateObject("vbscript.regexp")

    With vbRegX
        .Global = True
        .IgnoreCase = True
        .Pattern = "^[a-zA-Z0-9_-]{1,20}$"
    End With

それを使用するコード:

    Set vbRegXMatch = vbRegX.Execute(Me.txtProduct.Text)
    If vbRegXMatch.Count = 1 Then
        MsgBox "This string has invalid characters in it. Illegal characters are out side of the following ranges:" & vbNewLine & vbNewling & "a-z or A-Z" & vbNewLine & vbNewling & "0-9, - or _. Please try again."
        Cancel = True
        Me.txtProduct.SetFocus
        Set vbRegXMatch = Nothing
        Set vbRegX = Nothing
        Exit Sub
    End If

このコードは無効な文字で起動しますが、長さが 20 を超える場合は起動しません。これは Regex Buddy から提供された出力です。

Dim FoundMatch As Boolean
Dim myRegExp As RegExp
Set myRegExp = New RegExp
myRegExp.Pattern = "^[a-zA-Z0-9_-]{1,20}$"
FoundMatch = myRegExp.Test(SubjectString)

誰かが私が欠けているものをとても親切に指摘できますか?

コントロールのビジュアル:

ここに画像の説明を入力

4

1 に答える 1