Я потратил много часов, пытаясь решить эту проблему, которую я пытался, без успеха. Все, что мне нужно, чтобы проверить текстовое поле:Keypress ISSUE VB.NET
Правильных Цепи:
10%
0%
1111111.12%
15.2%
10
2.3
инвалидных Цепи:
.%
12.%
.02%
%
123456789123.123
Мне нужно, чтобы проверить текстовое поле с этими действительными цепями, поддерживая событие нажатия клавиши.
я судимый:
Private Sub prices_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles wholeprice_input_new_item.KeyPress, dozenprice_input_new_item.KeyPress, _
detailprice_input_new_item.KeyPress, costprice_input_new_item.KeyPress
Dim TxtB As TextBox = CType(sender, TextBox)
Dim fullText As String = TxtB.Text & e.KeyChar
Dim rex As Regex = New Regex("^[0-9]{1,9}([\.][0-9]{1,2})?[\%]?$ ")
If (Char.IsDigit(e.KeyChar) Or e.KeyChar.ToString() = "." Or e.KeyChar = CChar(ChrW(Keys.Back))) Then
If (fullText.Trim() <> "") Then
If (rex.IsMatch(fullText) = False And e.KeyChar <> CChar(ChrW(Keys.Back))) Then
e.Handled = True
MessageBox.Show("You are Not Allowed To Enter More then 2 Decimal!!")
End If
End If
Else
e.Handled = True
End If
End Sub
Примечание: Регулярного выражения должно проверить (максимум 2 знаков после запятой, и 9 целых чисел) с дополнительным символом процента.
Пожалуйста, помогите, я чувствую себя настолько расстроен, пытаясь решить эту проблему без успеха
ошибка, проверка на KeyPress и публикация всего назад немного странная для меня. Почему бы не проверить использование Javascript 'onkeyup', а затем проверить на стороне сервера ** ТОЛЬКО ** всю строку, а не несколько обратных передач? –