根据正则表达式

时间:2018-04-14 04:11:39

标签: vb.net validation input textbox

我试图通过正则表达式限制用户输入,但遇到非退格和删除等非字符输入时遇到问题。

我最初的想法是评估文本框结果将基于文本和传入字符的内容,然后接受输入或阻止它,如果通过/失败正则表达式。这有效,直到达到非字符输入,然后在正则表达式上失败。

有没有办法在不明确检查每个角色的情况下评估特殊字符?或者,如果有更好的实施方式,我会对它开放(我坚持使用正则表达式进行验证)。

' Regex for double input   ^[+-]?([0-9]*[.])?[0-9]*$

Private Sub txtTestInput_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtTestInput.KeyPress

    If chkValidateOnInput.Checked Then
        Dim part1 As String = txtTestInput.Text.Substring(0, txtTestInput.SelectionStart)
        Dim part2 As String = txtTestInput.Text.Substring(txtTestInput.SelectionStart + txtTestInput.SelectionLength)
        Dim character As String

        character = e.KeyChar.ToString
        Dim result As String = part1 + character + part2

        If Not Regex.IsMatch(result, txtRegex.Text) Then
            e.Handled = True
        End If
    End If
End Sub

0 个答案:

没有答案