用户输入限制,(空格,字母或数字,' - '和'_')c#

时间:2011-08-12 18:43:07

标签: c# regex

我想通过仅允许(空格,字母或数字,' - '和'_')验证文本框上的用户输入。我想知道是否有人可以帮助我进行正则表达式?我找到了这个SO question,但我正在尝试它并且它无效。

以下是我正在使用的内容:

if (!System.Text.RegularExpressions.Regex.IsMatch(NameTextBox.Text, "/^([a-zA-Z])([a-zA-Z0-9_ -])$/"))

感谢。

编辑 - 新方法。

我实际上决定选择这个而不是正则表达式,任何理由我不应该这样做?

if (!NameTextBox.Text.All(c=>Char.IsLetterOrDigit(c) || c==' ' || c=='_' || c=='-'))

Reference for the above code.

3 个答案:

答案 0 :(得分:1)

在开始和结束时摆脱正斜杠,这是一个javascript的事情。

"^([a-zA-Z])([a-zA-Z0-9_ -]){1,80}$"

答案 1 :(得分:1)

我认为这就是你想要的正则表达式:@"^[\w\s-]{1,80}$"

^       match start of string
\w      will match any [A-Za-z0-9_]
\s      will match any whitespace
-       will match the - character
{1,80}  requires between 1 and 80 characters
$       match end of string

如果用空格表示你想要只匹配空格(而不是标签),请将其切换为:

@"^[\w -]{1,80}$"

答案 2 :(得分:1)

尝试:

([a-zA-Z0-9-_\s])

该组匹配大小写字母a-z,0-9,“ - ”,“_”和空格(“\ s”)。