【发布时间】:2014-11-25 12:03:52
【问题描述】:
需要知道如何验证文本框的文本以确保它只包含不带空格的字母。
我希望存在某种可以帮助我的函数,比如“IsString”之类的。
【问题讨论】:
-
您还可以从字符串中删除空格吗?或者你真的想验证其中的空间吗?
标签: regex vb.net string validation
需要知道如何验证文本框的文本以确保它只包含不带空格的字母。
我希望存在某种可以帮助我的函数,比如“IsString”之类的。
【问题讨论】:
标签: regex vb.net string validation
if System.Text.RegularExpressions.Regex.IsMatch(TextBox.Text, "^[A-Za-z]+$")) ...
编辑
^ $ 字符是锚;它们分别表示匹配 start 和 end-of-line,可用于防止子字符串/部分匹配。
例如正则表达式X 将匹配"X" 和"AAAXAAA" 但^X$ 仅匹配"X",因为它的值可以被认为是"<start of line>X<end of line>"
【讨论】:
^$在JS中是一样的,/x/只是new RegExp("x")的简写
这将防止在文本框中输入除字母以外的任何内容。
Private Sub TextBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox.KeyPress
If Not Char.IsLetter(e.KeyChar) Then e.Handled = True 'ignore everything but letter keys
End Sub
【讨论】:
您可以使用正则表达式,如下所示:
Return (New System.Text.RegularExpressions.Regex("^[a-zA-Z]{1,}$")).IsMatch(testValue)
【讨论】:
a 到 z 或 A 到 Z 的任何字母 -- 至少 1 次,没有大写边界。为了更清楚地说明这一点:如果您使用{1,5},则意味着至少1次,最多5次,或者如果您使用{0,5},则意味着没有下限,但最多5次。
为了简单起见:
Char.isletter(textboxname)
If char.isletter(textboxname)=false then
Msgbox(error message)
Textboxname.clear()
Textboxname.focus()
End if
【讨论】:
char.isletter 接受所有 ASCII 字符。如果您只期望字母表,这可能是一件坏事。