我需要确保文本框具有针对它输入的特定格式...来自变量的数字然后是小数点然后任何其他数字(1.10,2.6等...)重要的是第一个数字应该来自变量,然后它必须是小数后跟另一个数字。
我无法找到任何过于具体的内容,而REGEX功能看起来需要对它如何运作进行一些调查...如果我能在这里得到一个快速的结果,那就太棒了!
我本能地(虽然没想到它起作用)尝试过:
If System.Text.RegularExpressions.Regex.IsMatch(txbCriterionNo.Text, OutcomeNo.ToString() + "." + "^[0-9]+$") Then
...
其中OutcomeNo是一个整数变量 - 所以我希望你能看到我的目标。因此,格式必须是整数变量 - 小数点然后是另一个整数值。
应该做些什么:
1.5 或 5.42 或 10.5
什么不该起作用:
.14 或 a.1 或 1.c
等等......谢谢!
答案 0 :(得分:0)
Chris85指出了我正确的方向,但我还需要确保第一个数字与一个变量值匹配,所以我得到了下面的一个处理......
If System.Text.RegularExpressions.Regex.IsMatch(txbCriterionNo.Text, "^\d+\.\d+$") And txbCriterionNo.Text.Substring(0, Convert.ToInt32(InStr(txbCriterionNo.Text, "."))) = OutcomeNo Then
这里我们正在使用正则表达式" ^ \ d +。\ d + $"确保格式正确[number] [decimal] [number],然后第二次检查获取小数位,并使用它来获取我们要与我的变量OutcomeNo进行比较的子字符串。
谢谢大家!!
答案 1 :(得分:0)
TextBox这样只允许digits
和dot
被激活。它必须以数字开头。
Private Sub txtValue_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtValue.KeyPress
Dim txtValue As txtValue = DirectCast(sender, txtValue)
If Not (Char.IsDigit(e.KeyChar) Or Char.IsControl(e.KeyChar) Or (e.KeyChar = "." And txtValue.Text.IndexOf(".") < 0) ) Then
e.Handled = True
If txtValue.Text.StartsWith(".") Then
txtValue.Text = ""
End If
End If
End Sub