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

用户输入限制,(空格、字母或数字、';-&';和';&&';)c#,c#,regex,C#,Regex,我想通过只允许(空白、字母或数字“-”和“"”)来验证文本框上的用户输入。我想知道是否有人能帮我处理这个regexp?我发现了这个,但我正在尝试,它不起作用 以下是我正在使用的: if (!System.Text.RegularExpressions.Regex.IsMatch(NameTextBox.Text, "/^([a-zA-Z])([a-zA-Z0-9_ -])$/")) 谢谢 编辑-新方法。 事实上,我决定用这个代替正则表达式,有什么理由不这样做吗 if (!NameTextBox

我想通过只允许(空白、字母或数字“-”和“"”)来验证文本框上的用户输入。我想知道是否有人能帮我处理这个regexp?我发现了这个,但我正在尝试,它不起作用

以下是我正在使用的:

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=='-'))

去掉开头和结尾的正斜杠,这是javascript的特点


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

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

如果所说的空白是指只匹配空格(而不是制表符),请将其切换为:

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

试试:

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

该组匹配小写和大写的a-z、0-9、“-”、“389;”和空格(“\s”)。

Regex在.NET中不需要开头和结尾/。您可能还需要对剩余80个字符的字符匹配中的最后一个“-”进行转义(注意,这允许当前最多81个字符的字符串,并且至少需要2个字符)为什么第一个[a-zA-Z]组?@Serge,OP复制了SO问题的精确表达式。经过一些研究后,我决定采用不同的方法。如果有任何理由不进行新尝试,请告诉我。谢谢大家的帮助。@prolink007你的其他方法是不一样的。我没有将输入限制在1到80个字符之间。+1,谢谢,我有一个新方法,如果有任何问题,请告诉我。=)+1、谢谢,我有一个新方法,如果有什么问题请告诉我感谢您提供的所有额外信息,接受您的回答。=)谢谢在这种情况下,没有发现其他方法有任何错误。+1,谢谢,我有一个新方法,如果有任何错误,请告诉我。=)
([a-zA-Z0-9-_\s])