关于正则表达式:用户输入限制,(空格,字母或数字,’ – ‘和’_’)c#

user input restriction, (white space, letter, or digit, '-' and '_') c#

我希望通过只允许(空格、字母或数字、"-"和"uo")来验证文本框上的用户输入。我想知道是否有人能帮我做那个regexp?我发现这个问题,但我正在尝试,但它不起作用。

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

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

谢谢。

编辑-新方法。

实际上我决定用这个来代替regex,有什么理由我不应该这样做吗?

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

以上代码的参考。


尝试:

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

该组匹配大小写a-z、0-9、"-"、"uu"和空白("s")。


我想这就是你想要的雷吉克斯:@"^[\w\s-]{1,80}$"

1
2
3
4
5
6
^       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}$"


去掉开头和结尾的正斜杠,这是一个javascript的东西。

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